-=| Joey Hess, Fri, Jan 25, 2008 at 01:17:27PM -0500 |=-
> Damyan Ivanov wrote:
> * Create a branch for the change.
[...]
Great. Thanks for educating me :)
> > TTBOMLK (L=limited), git-svn can't help us here as we use a repository
> > structure that is not that straight-forward. git-svn works best with:
> > $SVN/ trunk/ (here the main line of development goes)
> > branches/ (branches, one directory per branch)
> > tags/ (and tags, one directory per tag)
> > that is: one trunk, one place for all branches, one place for all
> > tags.
> >
> > and we have (ignoring the multi-package "detail"):
> > $SVN/ trunk/ (same as above)
> > branches/
> > upstream/
> > current/ (here's the "HEAD" of the upstream branch)
> > 1.01/ (and these are "tags" of it)
> > 1.02/
> > 2.00/
> > other branch1/ (possibly for backports, security,
> > other branch2/ stable-updates etc)
> > tags/ (these are the tags out of trunk)
> >
> > Perhaps there *is* a way to convert this, however it seems far from
> > trivial to me.
>
> git-svn can handle this ok, I converted a similar layout in my own svn
> repsository when coverting it to git. You have to run git-svn once per
> package, creating a separate git repo per package, and pass it --trunk,
> --tags and --branches.
Well, I guess I need more education on this topic too. This is what I
tried with libalias-perl:
$ PKG=libalias-perl
$ SVN=file:///svn/pkg-perl
$ nice git-svn clone --trunk $SVN/trunk/$PKG \
--branches $SVN/branches/upstream/$PKG \
--tags $SVN/tags/$PKG \
$SVN $PKG
.. time passes ..
$ cd $PKG
$ git branch
* master
$ git branch -a -v | cut -c -60
* master 4ab40b5 mass-change: rmdir /usr/{lib,shar
2.32 6960bcd repo reorganisation
2.32@323 494d792 [svn-inject] Installing original
2.32@6013 7abb0de [svn-inject] Tagging upstream sou
current 618e6ad repo reorganisation
current@6013 494d792 [svn-inject] Installing original
tags/2.32-7 621c24d repo reorganisation
tags/2.32-7@324 494d792 [svn-inject] Installing original
tags/2.32-7@328 5e7d4e6 deleted strange file :-)
tags/2.32-7@6013 2902cb7 [svn-buildpackage] Tagging libali
trunk 4ab40b5 mass-change: rmdir /usr/{lib,shar
trunk@324 494d792 [svn-inject] Installing original
trunk@6013 15708e9 updated watch file
Hmm, no tags, only a lot of branches
$ git diff current..current@6013 | wc -l
0
$ git diff current..2.32 | wc -l
0
OK, they are the same.
$ git diff trunk..trunk@324|wc -l
270
Ooops, these are different.
I guess the repository can be cleaned up, but... is there some way to
get it "right" right away?
With only "upstream" branch and the tags being tags, not branches?
> > * accounting (for a lack of better words)
> >
> > right now, one has to simply run "svn up" in a checked-out trunk/ and
> > all packages are updated and new ones checked out. As Git would use
> > one repository per package, we'll need some sort of "service area"
> > where the list is kept.
>
> http://kitenet.net/~joey/code/mr/ is my solution to this.
Oh, this can even handle the "service" area I was thinking of. Very nice
:)
> However, there's certianly a problem here, in that if you have 500 git
> repos, a single "mr up" means 500 individual ssh connections to alioth
> to update them. It is possible to use ssh connection caching to speed
> things up. mr can also run N updates in parallel.
We can offer some default .mrconfig that would not trash user's
system or alioth.
--
dam JabberID: dam@jabber.minus273.org
Attachment:
signature.asc
Description: Digital signature