Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf21630b

Browse files
committed
fix(refs): handle quoted branch names
Fixes#550
1 parent0691441 commitf21630b

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

‎git/refs/head.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88
__all__= ["HEAD","Head"]
99

1010

11+
defstrip_quotes(string):
12+
ifstring.startswith('"')andstring.endswith('"'):
13+
returnstring[1:-1]
14+
returnstring
15+
16+
1117
classHEAD(SymbolicReference):
1218

1319
"""Special case of a Symbolic Reference as it represents the repository's
@@ -152,7 +158,7 @@ def tracking_branch(self):
152158
from .remoteimportRemoteReference
153159
reader=self.config_reader()
154160
ifreader.has_option(self.k_config_remote)andreader.has_option(self.k_config_remote_ref):
155-
ref=Head(self.repo,Head.to_full_path(reader.get_value(self.k_config_remote_ref)))
161+
ref=Head(self.repo,Head.to_full_path(strip_quotes(reader.get_value(self.k_config_remote_ref))))
156162
remote_refpath=RemoteReference.to_full_path(join_path(reader.get_value(self.k_config_remote),ref.name))
157163
returnRemoteReference(self.repo,remote_refpath)
158164
# END handle have tracking branch

‎git/test/test_refs.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,18 @@ def test_heads(self, rwrepo):
119119
asserthead.tracking_branch()==remote_ref
120120
head.set_tracking_branch(None)
121121
asserthead.tracking_branch()isNone
122+
123+
124+
special_name='feature#123'
125+
special_name_remote_ref=SymbolicReference.create(rwrepo,'refs/remotes/origin/%s'%special_name)
126+
gp_tracking_branch=rwrepo.create_head('gp_tracking#123')
127+
special_name_remote_ref=rwrepo.remotes[0].refs[special_name]# get correct type
128+
gp_tracking_branch.set_tracking_branch(special_name_remote_ref)
129+
assertgp_tracking_branch.tracking_branch().path==special_name_remote_ref.path
130+
131+
git_tracking_branch=rwrepo.create_head('git_tracking#123')
132+
rwrepo.git.branch('-u',special_name_remote_ref.name,git_tracking_branch.name)
133+
assertgit_tracking_branch.tracking_branch().name==special_name_remote_ref.name
122134
# END for each head
123135

124136
# verify REFLOG gets altered

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp