doorstop.core.vcs.mercurial   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 34
Duplicated Lines 67.65 %

Importance

Changes 0
Metric Value
wmc 5
eloc 20
dl 23
loc 34
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A WorkingCopy.edit() 2 2 1
A WorkingCopy.lock() 3 3 1
A WorkingCopy.commit() 4 4 1
A WorkingCopy.delete() 2 2 1
A WorkingCopy.add() 2 2 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
# SPDX-License-Identifier: LGPL-3.0-only
2
3
"""Plug-in module to store requirements in a Mercurial repository."""
4
5
from doorstop import common
6
from doorstop.core.vcs.base import BaseWorkingCopy
7
8
log = common.logger(__name__)
9
10
11 View Code Duplication
class WorkingCopy(BaseWorkingCopy):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
12
    """Mercurial working copy."""
13
14
    DIRECTORY = ".hg"
15
    IGNORES = (".hgignore",)
16
17
    def lock(self, path):
18
        log.debug("`hg` does not support locking: {}".format(path))
19
        self.call("hg", "pull", "-u")
20
21
    def edit(self, path):
22
        self.call("hg", "add", path)
23
24
    def add(self, path):
25
        self.call("hg", "add", path)
26
27
    def delete(self, path):
28
        self.call("hg", "remove", path, "--force")
29
30
    def commit(self, message=None):
31
        message = message or input("Commit message: ")
32
        self.call("hg", "commit", "--message", message)
33
        self.call("hg", "push")
34