I'm having trouble to get rid of a deleted tag.
Here's what I did:

- push master branch from a non-bare repo (R1) into a bare repo (B1)
- push a tag (tag-a) from R1 into the same B1
- force-push master from another non-bare repo (R2) into B1
- do 'git push B1 :tag-a' from R2 to delete the tag
Now, in B1, 'git fsck' shows a dangling tag that can be identified
as 'tag-a' from above. There's obviously no reflog in B1.
I don't know how to get rid of that tag.

A cleaned-up 'script' session of the above is attached.

The problem initially occurred on Windows with git 2.7.0 but could
be reproduced on a Linux machine with git 2.7.0.

What's going on here ?

Thanks,
  Stefan
-- 
----------------------------------------------------------------
/dev/random says: Polls show that 9 out of 6 schizophrenics agree.
python -c "print 
'73746566616e2e6e616577654061746c61732d656c656b74726f6e696b2e636f6d'.decode('hex')"
 
GPG Key fingerprint = 2DF5 E01B 09C3 7501 BCA9  9666 829B 49C5 9221 27AF
~/tmp/zombie-tag ~
$ git init repo1
Initialized empty Git repository in /home/naewe_s/tmp/zombie-tag/repo1/.git/
$ git init repo2
Initialized empty Git repository in /home/naewe_s/tmp/zombie-tag/repo2/.git/
$ git init --bare bare1.git
Initialized empty Git repository in /home/naewe_s/tmp/zombie-tag/bare1.git/
$ cd repo1
$ echo A > A ; git add A ; git commit -m"add A"
[master (root-commit) d9e5baf] add A
 1 file changed, 1 insertion(+)
 create mode 100644 A
$ echo B > B ; git add B ; git commit -m"add B"
[master 3810738] add B
 1 file changed, 1 insertion(+)
 create mode 100644 B
$ git tag -m"initial" initial
$ git push ../bare1.git/ master initial
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects:  25% (1/4)   
Compressing objects:  50% (2/4)   
Compressing objects:  75% (3/4)   
Compressing objects: 100% (4/4)   
Compressing objects: 100% (4/4), done.
Writing objects:  14% (1/7)   
Writing objects:  28% (2/7)   
Writing objects:  42% (3/7)   
Writing objects:  57% (4/7)   
Writing objects:  71% (5/7)   
Writing objects:  85% (6/7)   
Writing objects: 100% (7/7)   
Writing objects: 100% (7/7), 548 bytes | 0 bytes/s, done.
Total 7 (delta 1), reused 0 (delta 0)
To ../bare1.git
 * [new branch]      master -> master
 * [new tag]         initial -> initial
$ cd ../repo2
$ for n in 1 2; do echo $n > $n ; git add $n; git commit -m"add $n"; done
[master (root-commit) e2ebcc4] add 1
 1 file changed, 1 insertion(+)
 create mode 100644 1
[master f8d1071] add 2
 1 file changed, 1 insertion(+)
 create mode 100644 2
$ git push -f ../bare1.git/ master
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects:  33% (1/3)   
Compressing objects:  66% (2/3)   
Compressing objects: 100% (3/3)   
Compressing objects: 100% (3/3), done.
Writing objects:  16% (1/6)   
Writing objects:  33% (2/6)   
Writing objects:  50% (3/6)   
Writing objects:  66% (4/6)   
Writing objects:  83% (5/6)   
Writing objects: 100% (6/6)   
Writing objects: 100% (6/6), 384 bytes | 0 bytes/s, done.
Total 6 (delta 1), reused 0 (delta 0)
To ../bare1.git
 + 3810738...f8d1071 master -> master (forced update)
$ git push ../bare1.git/ :initial
To ../bare1.git
 - [deleted]         initial
$ cd ../bare1.git/
$ git log --oneline
f8d1071 add 2
e2ebcc4 add 1

$ git for-each-ref
f8d10716fc887da36df53f58660bfaa77ff5a411 commit refs/heads/master
$ git fsck
Checking object directories:   5% (13/256)   
Checking object directories:  11% (30/256)   
Checking object directories:  13% (35/256)   
Checking object directories:  22% (57/256)   
Checking object directories:  53% (137/256)   
Checking object directories:  81% (209/256)   
Checking object directories:  83% (213/256)   
Checking object directories:  85% (218/256)   
Checking object directories:  87% (223/256)   
Checking object directories:  88% (227/256)   
Checking object directories:  96% (246/256)   
Checking object directories:  97% (249/256)   
Checking object directories: 100% (256/256)   
Checking object directories: 100% (256/256), done.
dangling tag 88a23db671d20eb6a4384207bf24b8e0c667a288
dangling commit 381073887a81082128b84945fe07c96c400e86da
$ git show  88a23db671d20e
tag initial
Tagger: Stefan Naewe <stefan.na...@xyz.com>
Date:   Thu Jan 21 08:51:05 2016 +0100

initial

commit d9e5baf52f472c49fd4fd1faeb6f0752dfe3980b
Author: Stefan Naewe <stefan.na...@xyz.com>
Date:   Thu Jan 21 08:50:41 2016 +0100

    add A

diff --git a/A b/A
new file mode 100644
index 0000000..f70f10e
--- /dev/null
+++ b/A
@@ -0,0 +1 @@
+A

$ git reflog

$ git gc
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects:  33% (1/3)   
Compressing objects:  66% (2/3)   
Compressing objects: 100% (3/3)   
Compressing objects: 100% (3/3), done.
Writing objects:  16% (1/6)   
Writing objects:  33% (2/6)   
Writing objects:  50% (3/6)   
Writing objects:  66% (4/6)   
Writing objects:  83% (5/6)   
Writing objects: 100% (6/6)   
Writing objects: 100% (6/6), done.
Total 6 (delta 1), reused 0 (delta 0)

$ git fsck
Checking object directories:  11% (30/256)   
Checking object directories:  13% (35/256)   
Checking object directories:  22% (57/256)   
Checking object directories:  53% (137/256)   
Checking object directories:  85% (218/256)   
Checking object directories:  96% (246/256)   
Checking object directories: 100% (256/256)   
Checking object directories: 100% (256/256), done.
Checking objects:   0% (0/6)   
Checking objects: 100% (6/6)   
Checking objects: 100% (6/6), done.
dangling tag 88a23db671d20eb6a4384207bf24b8e0c667a288
dangling commit 381073887a81082128b84945fe07c96c400e86da

Reply via email to