From: Manlio Perillo <manlio.perillo@gmail.com>
To: Jens Lehmann <Jens.Lehmann@web.de>
Cc: Junio C Hamano <gitster@pobox.com>,
Heiko Voigt <hvoigt@hvoigt.net>,
git@vger.kernel.org, "W. Trevor King" <wking@drexel.edu>
Subject: Re: [BUG] git submodule update is not fail safe
Date: Sat, 05 Jan 2013 15:49:55 +0100 [thread overview]
Message-ID: <50E83D93.80600@gmail.com> (raw)
In-Reply-To: <50E83224.2070701@web.de>
-----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-----
next prev parent reply other threads:[~2013-01-05 14:50 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-04 20:53 [BUG] git submodule update is not fail safe Manlio Perillo
2013-01-04 21:51 ` Junio C Hamano
2013-01-05 13:52 ` Manlio Perillo
2013-01-05 14:07 ` Jens Lehmann
2013-01-05 14:01 ` Jens Lehmann
2013-01-05 14:49 ` Manlio Perillo [this message]
2013-01-05 14:50 ` Jens Lehmann
2013-01-05 20:17 ` [PATCH] clone: support atomic operation with --separate-git-dir Jens Lehmann
2013-01-05 21:20 ` Manlio Perillo
2013-01-06 6:43 ` Junio C Hamano
2013-01-06 8:49 ` Duy Nguyen
2013-01-06 9:16 ` Jonathan Nieder
2013-01-06 9:47 ` [PATCH] clone: forbid --bare --separate-git-dir <dir> Nguyễn Thái Ngọc Duy
2013-01-06 10:19 ` Jonathan Nieder
2013-01-06 23:13 ` Junio C Hamano
2013-01-07 1:18 ` Duy Nguyen
2013-01-07 2:04 ` Junio C Hamano
2013-01-08 14:16 ` Duy Nguyen
2013-01-08 17:15 ` Jens Lehmann
2013-01-08 17:45 ` Junio C Hamano
2013-01-08 23:34 ` Duy Nguyen
2013-01-08 23:42 ` Junio C Hamano
2013-01-11 3:09 ` [PATCH v2] " Nguyễn Thái Ngọc Duy
2013-01-11 3:15 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50E83D93.80600@gmail.com \
--to=manlio.perillo@gmail.com \
--cc=Jens.Lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=hvoigt@hvoigt.net \
--cc=wking@drexel.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.