File tree 2 files changed +19
-1
lines changed
2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change 8
8
__all__ = ["HEAD" , "Head" ]
9
9
10
10
11
+ def strip_quotes (string ):
12
+ if string .startswith ('"' ) and string .endswith ('"' ):
13
+ return string [1 :- 1 ]
14
+ return string
15
+
16
+
11
17
class HEAD (SymbolicReference ):
12
18
13
19
"""Special case of a Symbolic Reference as it represents the repository's
@@ -152,7 +158,7 @@ def tracking_branch(self):
152
158
from .remote import RemoteReference
153
159
reader = self .config_reader ()
154
160
if reader .has_option (self .k_config_remote ) and reader .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 ) )))
156
162
remote_refpath = RemoteReference .to_full_path (join_path (reader .get_value (self .k_config_remote ), ref .name ))
157
163
return RemoteReference (self .repo , remote_refpath )
158
164
# END handle have tracking branch
Original file line number Diff line number Diff line change @@ -119,6 +119,18 @@ def test_heads(self, rwrepo):
119
119
assert head .tracking_branch () == remote_ref
120
120
head .set_tracking_branch (None )
121
121
assert head .tracking_branch () is None
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
+ assert gp_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
+ assert git_tracking_branch .tracking_branch ().name == special_name_remote_ref .name
122
134
# END for each head
123
135
124
136
# verify REFLOG gets altered
You can’t perform that action at this time.
0 commit comments