[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