Hi, we have a topgit[1] enabled tree at last: http://git.openezx.org/?p=top-git-test.git;a=summary (let me know if you want the details of the topgit-ification :))
It has all the bits present in the current openezx tree, but organized
by topics, this will surely ease the review process and the upstream
submission. But please note that the master branch has been rewound, so
you need to clone the tree again, DON'T PULL from it.
Every branch compiles and runs successfully, and _almost_ all the
history is intact; well, in the commit reorganization I had to split
some commits and distribute the changes across the topic branches, and
some others sha1 changed because of git-cherry-pick (maybe I could have
avoided that using git-cherry-pick -n and git-commit -c, but I realized
that only when I was almost finished).
Of course all the code is intact, you can run this command:
git diff 1101d2609255da52e81358256bc0ef3011a7fd77..HEAD
in both trees and verify that there is no difference (modulo some line
shifts).
To clone the repository do:
git clone [EMAIL PROTECTED]:top-git-test.git
cd top-git-test
tg remote --populate origin
The current branches layout is this (it looks like a quilt patchset,
for now):
master
t/openezx/fixes
t/openezx/ezx-gpio
t/openezx/ezx-keypad
t/openezx/ezx-eoc
t/openezx/ezx-i2c
t/openezx/ezx-pcap
t/openezx/pcap_ts
t/openezx/ezx-mci
t/openezx/ezx-udc
I hope that in the future the command "tg summary" could show that info,
but for now I don't know how to _quickly_ retrieve the information
about the layout of a topgit tree, but it can definitely be done using a
combination of:
tg summary
tg info <branch>
Here's a "brief" guide about how to deal with topgit, an analogy with
quilt is the easiest way to proceed:
quilt new <patch name> -> tg create <branch name> && \
git add -f .topdeps .topmsg && git-commit
this works only when you are at the topmost branch, I guess that to add
a branch between two existing branches, one could do something like that
(totally untested):
# let B be the current branch and N the new one
# B--C
tg create N && git add -f .topdeps .topmsg && git-commit
# We now have
# B--C
# `--N
git-checkout C
echo N > .topdeps
tg update
# We should have
# B--N--C
going on with the analogy:
quilt edit <file> -> $EDITOR <file> && git add <file> && git-commit
quilt push <patch name> -> git-checkout <branch name>
quilt pop <patch name> -> git-checkout <branch name>
quilt pop -> git-checkout `cat .topdeps`
the above last command works in a "tree layout" like our but it doesn't
in general: keep in mind that topgit allows also "DAG layouts".
If you make changes to a branch you may need to
update the branches which depend on it, so:
quilt push <patch name> && quilt refresh -> \
git-checkout <deeper branch> && tg update
If you want to see the changes introduced by the topic branch:
tg patch
The 't/openezx/fixes' branch is intended to have one fix per commit, so
here we want to have one patch per commit:
git-checkout t/openezx/fixes
git-format-patch master
If you want to export all the topic branches as a quilt patchset:
git-checkout <topmost branch>
tg export --quilt <directory>
Now we have to test in real life in a collaborative environment, and if
we like it we can switch to that tree.
Please let me know if this guide needs some clarification.
Regards,
Antonio
[1] http://repo.or.cz/w/topgit.git
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing in e-mail?
Web site: http://www.studenti.unina.it/~ospite
Public key: http://www.studenti.unina.it/~ospite/aopubkey.asc
pgpDLyBsRF59J.pgp
Description: PGP signature
