File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change 88__all__ = ["HEAD" , "Head" ]
99
1010
11+ def strip_quotes (string ):
12+ if string .startswith ('"' ) and string .endswith ('"' ):
13+ return string [1 :- 1 ]
14+ return string
15+
16+
1117class HEAD (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 .remote import RemoteReference
153159 reader = self .config_reader ()
154160 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 ) )))
156162 remote_refpath = RemoteReference .to_full_path (join_path (reader .get_value (self .k_config_remote ), ref .name ))
157163 return RemoteReference (self .repo , remote_refpath )
158164 # END handle have tracking branch
Original file line number Diff line number Diff line change @@ -119,6 +119,18 @@ def test_heads(self, rwrepo):
119119 assert head .tracking_branch () == remote_ref
120120 head .set_tracking_branch (None )
121121 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
122134 # END for each head
123135
124136 # verify REFLOG gets altered
You can’t perform that action at this time.
0 commit comments