Gentoo Archives: gentoo-dev

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver
Date: Thu, 31 May 2012 16:50:24
In Reply to: Re: [gentoo-dev] Re: Portage Git migration - clean cut or git-cvsserver by Dirkjan Ochtman
On Wed, May 30, 2012 at 10:31:06PM +0200, Dirkjan Ochtman wrote:
> On Wed, May 30, 2012 at 8:33 PM, Robin H. Johnson <robbat2@g.o> wrote: > > No, the last mock conversion is still live and updating fairly often: > >;a=summary > Since you seem to know most about this project, can you give a short > summary on what *you* think are hard blockers for the migration?
There are only two items from my perspective. 1. Discussion on merge policy. Originally I thought we would disallow merge commits, so that we would get a cleaner history. However, it turns out that if the repo ends up being pushed to different places with slightly different histories, merges are absolutely going to be required to prevent somebody from having to rebase at least one of their sets of commits that are already pushed. 2. Git-SVN breakage. Why does this matter you're wondering? We need the newer Git for the commit signing, but it comes with a price, the git-svn binary has some major failures with SVN 1.7. Git since 1.7.8 has been broken this way. You can see them best with the testsuite. I haven't keyworded those ebuilds for git at all, because git-svn in some of my tests ended up being destructive of the repository - it actually lost data. The error sometimes turns up like this. Initialized empty Git repository in /dev/shm/portage/dev-vcs/git-9999/work/git-9999/t/t d.t9155/git_project/.git/ svn: E235000: In file 'subversion/libsvn_subr/dirent_uri.c' line 2291: assertion failed (svn_uri_is_canonical(url, pool)) This is seemingly due to a change in SVN 1.7 that is stricter about all paths (both URIs and to files/directories) being properly escaped. Upstream Git has made no progress on it in more than 6 months. Both ferringb and I put several weeks of work into it without succeeding. If you want to reproduce it: - Upgrade your SVN to 1.7 - Build & run the git testsuite - Most of the t91xx tests will fail, because the working dir is 'trash directory'. - If you patch the working dir to be 'trash_directory', you'll be left with failures in at least: t9100 t9118 t9120 Because those are the tests that have whitespace or other characters that need escaping. The last version of my patch is files/git-1.7.8-git-svn-1.7-canonical-path.patch but it caused more problems than it fixed. -- Robin Hugh Johnson Gentoo Linux: Developer, Trustee & Infrastructure Lead E-Mail : robbat2@g.o GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85