This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Git question: Rebasing a user branch


I'm having a little difficulty with my workflow, and I'm hoping someone can spot the problem.

I have a user branch set up with the contrib/git-add-user-branch.sh script.  Here are the relevant portions of my .git/config:

[remote "users/wschmidt"]
        url = git+ssh://wschmidt@gcc.gnu.org/git/gcc.git
        fetch = +refs/users/wschmidt/heads/*:refs/remotes/users/wschmidt/*
        fetch = +refs/users/wschmidt/tags/*:refs/tags/users/wschmidt/*
        push = refs/heads/wschmidt/*:refs/users/wschmidt/heads/*
[branch "wschmidt/builtins"]
        remote = users/wschmidt
        merge = refs/users/wschmidt/heads/builtins

I originally created the branch from master.  I then made 15 local commits, and pushed these upstream.

I now want to rebase my branch from master, and reflect this state upstream.  My recipe is:

git checkout master
git pull
git checkout wschmidt/builtins
git rebase master
git push --dry-run users/wschmidt +wschmidt/builtins

After the rebase step, git status shows:

On branch wschmidt/builtins
Your branch and 'users/wschmidt/builtins' have diverged,
and have 39 and 15 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

nothing to commit, working tree clean

Looks fine to me, so lets try the force push:

wschmidt@marlin:~/newgcc/gcc/config/rs6000$ git push --dry-run users/wschmidt +wschmidt/builtins
To git+ssh://gcc.gnu.org/git/gcc.git
 * [new branch]              wschmidt/builtins -> wschmidt/builtins

Well, that's odd, why is it trying to create a new branch?

If I inadvisedly attempt to push without --dry-run, I am stopped from creating the new branch:

remote: *** Shared development branches should be named devel/*, and should be documented in https://gcc.gnu.org/git.html .
remote: error: hook declined to update refs/heads/wschmidt/builtins
To git+ssh://gcc.gnu.org/git/gcc.git
 ! [remote rejected]         wschmidt/builtins -> wschmidt/builtins (hook declined) error: failed to push some refs to 'git+ssh://wschmidt@gcc.gnu.org/git/gcc.git'

It seems wrong that it is trying to update refs/head/wschmidt/builtins (thus creating a new branch).  It seems like there may be a missing "users/" needed someplace.  But I am not at all confident that's correct.  I'm a little suspicious of the push spec in my config.

Can someone with strong git-fu give me any suggestions?

Best regards,
Bill


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]