-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Il 05/01/2013 15:01, Jens Lehmann ha scritto: > [...] >>> $ git submodule update --init >>> fatal: Needed a single revision >>> Unable to find current revision in submodule path 'pixman' >>> >>> The problem is easy to solve: manually remove the pixman directory; >>> however IMHO git submodule update should not fail this way since it may >>> confuse the user. >> >> Sounds like a reasonable observation. Jens, Heiko, comments? > > The reason seems to be that clone leaves a partial initialized .git > directory in case of connection problems. The next time submodule > update runs it tries to revive the submodule from .git/modules/<name> > but fails as there are no objects in it. > > [...] > > If this isn't seen as a bug in clone, we could also remove the > .git/modules/<name> directory in module_clone() of git-submodule.s > h when the clone fails. Manilo, Its Manlio, not Manilo ;-). > does the following patch remove the > problems you are seeing (after removing .git/modules/pixman manually)? > I don't think I can test it right now, since the problem can only be reproduced when git clone fails due to network problems. Without the patch, if I remove the .git/modules/pixman directory, `git submodule update --init pixamp` fails: Unable to find current revision in submodule path 'pixman' fatal: Not a git repository: pixman/../.git/modules/pixman To reproduce the problem, however, it seems all you need to do is to send SIGINT signal during `git submodule update` : $ git submodule update --init pixman Cloning into 'pixman'... remote: Counting objects: 10137, done. ^C $ git submodule update pixman remote: Counting objects: 10137, done. ^C $ git submodule update pixman fatal: Needed a single revision Unable to find current revision in submodule path 'pixman' Note that I had to send SIGINT two times, in order to corrupt the module. I suspect your patch does not fix this (since I don't get the "Clone failed" error message). I also noted that If I send SIGINT before git starts counting remote objects, I get a different count number: $ git submodule update pixman Cloning into 'pixman'... ^C $ git submodule update pixman remote: Counting objects: 9757, done. ^C $ git submodule update pixman fatal: Needed a single revision Unable to find current revision in submodule path 'pixman' Note that git is reporting 9757 remote objects, instead of 10137. P.S.: sorry for the mail I sent today. It reported the exact same problem I reported yesterday: this morning I was rather sure that I got a different error message from submodule update... Regards Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAlDoPZMACgkQscQJ24LbaUTfNQCdFvhSQwGlJZlvOr+TIHHyDFJY d8AAn0zuHKjBGIcqr8RH/rftHjomvPtM =48RN -----END PGP SIGNATURE----- -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html