Skip to content

Commit e2b4265

Browse files
committed
Review comments
1 parent 2e54cc2 commit e2b4265

File tree

2 files changed

+15
-26
lines changed

2 files changed

+15
-26
lines changed

src/setuptools_scm/git.py

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from os.path import isfile
66
from os.path import join
77
from os.path import samefile
8-
from shlex import quote
98

109
from .config import Configuration
1110
from .scm_workdir import Workdir
@@ -39,8 +38,7 @@ def from_potential_worktree(cls, wd):
3938
wd = os.path.abspath(wd)
4039
git_dir = join(wd, ".git")
4140
real_wd, _, ret = do_ex(
42-
f"git --git-dir={quote(git_dir)} rev-parse --show-prefix",
43-
wd,
41+
["git", "--git-dir", git_dir, "rev-parse", "--show-prefix"], wd
4442
)
4543
real_wd = real_wd[:-1] # remove the trailing pathsep
4644
if ret:
@@ -59,35 +57,26 @@ def from_potential_worktree(cls, wd):
5957

6058
return cls(real_wd)
6159

62-
def __init__(self, *args, **kwargs):
63-
super().__init__(*args, **kwargs)
64-
self._git_dir = join(self.path, ".git")
60+
def do_ex_git(self, cmd):
61+
return self.do_ex(["git", "--git-dir", join(self.path, ".git")] + cmd)
6562

6663
def is_dirty(self):
67-
out, _, _ = self.do_ex(
68-
f"git --git-dir={quote(self._git_dir)} "
69-
"status --porcelain --untracked-files=no"
70-
)
64+
out, _, _ = self.do_ex_git(["status", "--porcelain", "--untracked-files=no"])
7165
return bool(out)
7266

7367
def get_branch(self):
74-
branch, err, ret = self.do_ex(
75-
f"git --git-dir={quote(self._git_dir)} rev-parse --abbrev-ref HEAD"
76-
)
68+
branch, err, ret = self.do_ex_git(["rev-parse", "--abbrev-ref", "HEAD"])
7769
if ret:
7870
trace("branch err", branch, err, ret)
79-
branch, err, ret = self.do_ex(
80-
f"git --git-dir={quote(self._git_dir)} symbolic-ref --short HEAD"
81-
)
71+
branch, err, ret = self.do_ex_git(["symbolic-ref", "--short", "HEAD"])
8272
if ret:
8373
trace("branch err (symbolic-ref)", branch, err, ret)
8474
branch = None
8575
return branch
8676

8777
def get_head_date(self):
88-
timestamp, err, ret = self.do_ex(
89-
f"git --git-dir={quote(self._git_dir)} -c log.showSignature=false "
90-
"log -n 1 HEAD --format=%cI"
78+
timestamp, err, ret = self.do_ex_git(
79+
["-c", "log.showSignature=false", "log", "-n", "1", "HEAD", "--format=%cI"]
9180
)
9281
if ret:
9382
trace("timestamp err", timestamp, err, ret)
@@ -100,25 +89,24 @@ def get_head_date(self):
10089
return datetime.strptime(date_part, r"%Y-%m-%d").date()
10190

10291
def is_shallow(self):
103-
return isfile(join(self._git_dir, "shallow"))
92+
return isfile(join(self.path, ".git/shallow"))
10493

10594
def fetch_shallow(self):
106-
self.do_ex(f"git --git-dir={quote(self._git_dir)} fetch --unshallow")
95+
self.do_ex_git(["fetch", "--unshallow"])
10796

10897
def node(self):
109-
node, _, ret = self.do_ex(
110-
f"git --git-dir={quote(self._git_dir)} rev-parse --verify --quiet HEAD"
111-
)
98+
node, _, ret = self.do_ex_git(["rev-parse", "--verify", "--quiet", "HEAD"])
11299
if not ret:
113100
return node[:7]
114101

115102
def count_all_nodes(self):
116-
revs, _, _ = self.do_ex(f"git --git-dir={quote(self._git_dir)} rev-list HEAD")
103+
revs, _, _ = self.do_ex_git(["rev-list", "HEAD"])
117104
return revs.count("\n") + 1
118105

119106
def default_describe(self):
107+
git_dir = join(self.path, ".git")
120108
return self.do_ex(
121-
DEFAULT_DESCRIBE[:1] + ["--git-dir", self._git_dir] + DEFAULT_DESCRIBE[1:]
109+
DEFAULT_DESCRIBE[:1] + ["--git-dir", git_dir] + DEFAULT_DESCRIBE[1:]
122110
)
123111

124112

testing/test_git.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ def test_parse_call_order(wd):
9595

9696

9797
@pytest.mark.issue("https://github.com/pypa/setuptools_scm/issues/707")
98+
@pytest.mark.xfail(run=False, reason="This test requires passwordless sudo")
9899
def test_not_owner(wd):
99100
git_dir = opj(wd.cwd)
100101
original_stat = os.stat(git_dir)

0 commit comments

Comments
 (0)