[asdf-devel] Question about git
dherring at tentpost.com
dherring at tentpost.com
Sat Jan 30 10:54:05 UTC 2010
> Using a development branch on the public repo sounds alright to me.
> I started my repo before I had the commit bit on the public repo,
> which is what got me started historically.
> I didn't change my workflow just because I've been too lazy to learn
> how to do it so far.
>
> If someone will point me to a document that explains how to properly
> use branched development with git,
> I will gladly do it (as it seems to be the consensus that we should be
> using branches in the main public repo).
The basic idea is simple:
# git fetch <repo-name> # gets all the branches
# git checkout -b <branch-name> <repo-name>/<branch-name>
##
## update
# git fetch <repo-name>
## check what changed, then fast-forward onto it
# gitk
# git rebase <repo-name>/<branch-name>
## do some work, the commit to that branch
# git push <repo-name> <branch-name>
Depending on your work flow, you may not need to specify <repo-name> or
<branch-name> in some of the commands above. You may also want to specify
--track or drop the -b during the checkout. As always, learn/practice on
a couple local repos (safe) before messing up a public one (embarrassing).
FWIW, its been my experience that tracking another repository isn't much
harder than using different branches in a single repository.
## separate repos
# git clone <asdf url>
# git remote add fahree <Faré's url>
# git fetch
# git fetch fahree
# git checkout -b fahree fahree/master
...
## branches in single repo
# git clone <asdf url>
# git fetch
# git checkout -b fahree fahree/master
All the differences are in initialization and fetching, so the above
example shows the maximum change in workload. In particular, merge issues
are identical in either case; as with any version-control system, people
need to coordinate which branch/repo they are working on.
Of note, if RPG and I were sending merge requests rather than individual
patches, Faré wouldn't be seeing as many conflicts. Instead, git would be
using history to better auto-resolve things.
To me, a more interesting question is whether people might find a site
like github or gitorious to be helpful. Such sites have systems for
making and auto-tracking forks, submitting merge requests, administering
commit bits, etc. Github is more individual-oriented; Gitorious has a
more team-oriented focus. Theoretically, gitorious could even be
installed on cl.net.
- Daniel
More information about the asdf-devel
mailing list