Re: [PATCH] clone: support atomic operation with --separate-git-dir
- From
Manlio Perillo <manlio.perillo@gmail.com>
- Date
- Jan 5, 2013, 21:20 UTC
- Message-ID
- <50E8991E.4090605@gmail.com>
- In-Reply-To
- <50E88A40.9010904@web.de>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Il 05/01/2013 21:17, Jens Lehmann ha scritto:
Show 25 quoted lines
> Since b57fb80a7d (init, clone: support --separate-git-dir for .git file) > git clone supports the --separate-git-dir option to create the git dir > outside the work tree. But when that option is used, the git dir won't be > deleted in case the clone fails like it would be without this option. This > makes clone lose its atomicity as in case of a failure a partly set up git > dir is left behind. A real world example where this leads to problems is > when "git submodule update" fails to clone a submodule and later calls to > "git submodule update" stumble over the partially set up git dir and try > to revive the submodule from there, which then fails with a not very user > friendly error message. > > Fix that by updating the junk_git_dir variable (used to remember if and > what git dir should be removed in case of failure) to the new value given > with the --seperate-git-dir option. Also add a test for this to t5600 (and > while at it fix the former last test to not cd into a directory to test > for its existence but use "test -d" instead). > > Reported-by: Manlio Perillo <manlio.perillo@gmail.com> > Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> > --- > [...] > And this fixes it for me. Manlio, it'd be great if you could test > this patch (but please not only remove .git/modules/<name> but also > the submodule work tree before doing that). >
I can confirm that the patch solves the problem I reported.
Thanks Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlDomR4ACgkQscQJ24LbaUQszACfV42L9Xcy+mme6RY/vY+K2H4T QDAAoIIupUSjwv6qUgzUMQV1aNplrWJD =uN3W -----END PGP SIGNATURE-----