> Is 'git fetch/checkout' sequence also the right way to go?
'git fetch origin' will fetch all branches and changes on github to your local machine.
To create a local branch that tracks the remote pullexec branch, you can use 'git checkout -b pullexec origin/pullexec'. If you already have a local 'pullexec' branch that doesn't track any remote branch, you can safely remove it by executing 'git branch -d pullexec'. Then you should be able to use the checkout command to do what you want.
--
Ning
If you 'git fetch origin', does pullexec show up in 'git branch -a'?
Ning
> Looks like I don't have permission to check-in
It's because that repository is owned by VoltDB. You cannot write to a
Github repository that you don't have write access to.
You can fork our repository first by clicking the fork button near the
upper right corner of the VoltDB project page. Then you will have an
identical Volt repository that is owned by you. On your local machine,
you can clone the repository you just forked. Since this repository is
owned by you, you can do anything to it. All your commits will go to
your Github repository. Once you have a set of commits ready, you can
initiate a pull request for us to review.
http://help.github.com/fork-a-repo/
Ning
This makes sense (wish I'd thought of it). Based on this setup, there are actually a few options for how to proceed.
I briefly considered that it might be more convenient to manage the project entirely on your fork, but there are some
nice benefits to staging to an official VoltDB-owned branch -- our in-house integration testing tools are able to access it.
So, the way I imagine this flowing is that you will post commits to your forked github repo when ready.
I'm not sure if git/github will reward you for using a matching pullexec branch name in your repo when it comes time
to make the pull request, but it seems like it's worth a shot. I can manage the VoltDB side of the pull request acceptance.
I'll also manage the eventual merge process back into the VoltDB master. It's possible, but not likely that some critical commit will get made to master and the author will request that all active branches adopt it (like because it enables improvements to the common testing framework). I'll manage that, too -- it may require a judgment call whether to try to push such a change to your forked repo as well.
The remaining category of changes would be project-specific changes coming from VoltDB. If you wanted to maintain total control of your fork, I/we could push to the VoltDB pullexec branch and then make a pull request to your fork which you could then review and accept (fair is fair).
Otherwise, you'd have to grant me (for instance) write privileges to your repo so I could push commits directly. I don't know that I'd personally recommend that -- I have trouble enough now tracking the one shared github repo and too many private local repos and their (too many) branches -- maybe direct write access to yet another shared repo would just muddy the waters. On the other hand, maybe it would make it easier for me to isolate this project in particular -- it's hard to predict. Also, I'm a little curious to see how helpful github (vs. raw git) is when it comes to reconciling forks and generally managing round-trip development between github-hosted repos. Bottom line: if you feel that my using direct write access to your repo would make things much more convenient for you, I'm willing to give it a try.
In any case, if you send me a link to your github account/repo, I can at least follow it.