modification of sources file causes git corruption.

Dave Jones davej at redhat.com
Sun Aug 1 04:25:49 UTC 2010


Check this out..

(00:13:25:davej at gelk:kernel)$ fedpkg -v upload patch-2.6.35-rc6-git6.bz2
Creating module object from /mnt/data/src/fedora/kernel
Uploading: f73d01927a3150e729b44add5ea4923c  patch-2.6.35-rc6-git6.bz2
Running curl -k --cert /home/davej/.fedora.cert --fail -o /dev/null --show-error --progress-bar -F name=kernel -F md5sum=f73d01927a3150e729b44add5ea4923c -F file=@patch-2.6.35-rc6-git6.bz2 https://pkgs.fedoraproject.org/repo/pkgs/upload.cgi directly on the tty
######################################################################## 100.0%
Source upload succeeded. Don't forget to commit the sources file
(00:13:35:davej at gelk:kernel)$ git fsck --full
(00:13:59:davej at gelk:kernel)$ cat sources 
10eebcb0178fb4540e2165bfd7efc7ad  linux-2.6.34.tar.bz2
1205481c8d1b5ccecad87840ddaeaf81  patch-2.6.35-rc6.bz2
6488f89f618d7e03af865534b31d3419  patch-2.6.35-rc6-git5.bz2
f73d01927a3150e729b44add5ea4923c  patch-2.6.35-rc6-git6.bz2
(00:14:02:davej at gelk:kernel)$ vim sources 
(00:14:05:davej at gelk:kernel)$ cat sources 
10eebcb0178fb4540e2165bfd7efc7ad  linux-2.6.34.tar.bz2
1205481c8d1b5ccecad87840ddaeaf81  patch-2.6.35-rc6.bz2
f73d01927a3150e729b44add5ea4923c  patch-2.6.35-rc6-git6.bz2
(00:14:06:davej at gelk:kernel)$ git fsck --full
(00:14:43:davej at gelk:kernel)$ git commit -a
[master 89d0d88] 2.6.35-rc6-git6
 3 files changed, 6 insertions(+), 2 deletions(-)
(00:16:40:davej at gelk:kernel)$ git fsck --full
dangling blob 64802926167a6aef0d71a5e6de35f0857674947b


git show on that blob shows the variant of 'sources' before I removed
the git5 entry. It seems if there's a pending staged commit to a file,
and then you modify it, git loses its shit.

Why can't fedpkg upload just leave the file modified instead of staging the commit ?
This would also have the advantage of showing up in git diff without the need
for --cached before doing the actual commit.

If we're modifying sources for an upload, chances are we're going to want to remove
a stale entry anyway, and having to do this as two commits seems a bit dumb.

	Dave



More information about the devel mailing list