Branch Names and tracking branches

2 messages, 1 author, 2016-06-15 · open the first message on its own page

Branch Names and tracking branches

From: Troy Telford <hidden>
Date: 2016-06-15 22:48:52

I've got a situation where I'm trying to integrate git into another tool, so 
that when you make a commit into a git branch, a post-receive hook will then 
push the code changes into the other tool when the user pushes their changes 
into the repository.

The problem:  The other tool uses colons in the name.  So, I looked at 'man 
git-check-ref-format', and found that the colon can't be used.

So, I looked for a substitute character that isn't likely to be used anyway -- 
semicolon seemed to be a good choice.

As I decided to use a semicolon, a conversion as needed in the post hook.  It 
works fine with the git branch names along the lines of sna;foo;bar.

But using a branch name of "sna;foo;bar" is not entirely great, as the 
semicolon has to be escaped on the command line when referencing the branch 
name.

So, I decided to use a tracking branch:
 git branch --track branch "refs/origin/sna;foo;bar"

Again, it checks out okay, and it is able to pull in changes fine.  However, 
changes can't be pushed into the remote repository at all; 'git push' simply 
returns "Everything up-to-date," even when changes are made.

This differs from the behavior I've seen in the past for tracking branches - 
I'm used to (and was expecting) the git push to push the changes into the 
remote's "refs/heads/sna;foo;bar" branch.

Using another character is, of course, an option; but the semicolon isn't 
explicitly forbidden and it works for everything I've used but 'git push'.

So am I just doing something wrong, or have I found a bug or documentation 
issue?

Re: Branch Names and tracking branches

From: Troy Telford <hidden>
Date: 2016-06-15 22:48:52

I just realized it's a config issue.  <sigh>

git config push.default tracking

Sorry for that...

On Wednesday, May 26, 2010 02:39:17 pm Troy Telford wrote:
I've got a situation where I'm trying to integrate git into another tool,
so that when you make a commit into a git branch, a post-receive hook will
then push the code changes into the other tool when the user pushes their
changes into the repository.

The problem:  The other tool uses colons in the name.  So, I looked at 'man
git-check-ref-format', and found that the colon can't be used.

So, I looked for a substitute character that isn't likely to be used anyway
-- semicolon seemed to be a good choice.

As I decided to use a semicolon, a conversion as needed in the post hook. 
It works fine with the git branch names along the lines of sna;foo;bar.

But using a branch name of "sna;foo;bar" is not entirely great, as the
semicolon has to be escaped on the command line when referencing the branch
name.

So, I decided to use a tracking branch:
 git branch --track branch "refs/origin/sna;foo;bar"

Again, it checks out okay, and it is able to pull in changes fine. 
However, changes can't be pushed into the remote repository at all; 'git
push' simply returns "Everything up-to-date," even when changes are made.

This differs from the behavior I've seen in the past for tracking branches
- I'm used to (and was expecting) the git push to push the changes into
the remote's "refs/heads/sna;foo;bar" branch.

Using another character is, of course, an option; but the semicolon isn't
explicitly forbidden and it works for everything I've used but 'git push'.

So am I just doing something wrong, or have I found a bug or documentation
issue?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help