Skip to contentSkip to conversation

killing a branch

DISCUSSION Jens Axboe 3 participants 7 messages Jun 15, 2016

lore
Share & tools
lore

Jens Axboe

author
#0 lore raw

Hi,

When I need to delete a branch from my git tree, I'm currently using this (slooow) approach:

$ rm .git/refs/heads/branch-name
$ git prune

to rid myself of the branch and associated objects. Is there a faster approach?

(please cc me, not on the list)

Signature · 1 line
Jens Axboe
#1 lore raw
Quoted 5 lines · Jens Axboe
$ rm .git/refs/heads/branch-name
$ git prune

to rid myself of the branch and associated objects. Is there a faster approach?

Perhaps the "official" way is

	$ git branch -d branch-name ;# you may need -D
        $ git prune

but that essentially is the same as what you are doing. Note that having dangling objects in your repository is not a crime, and you do not have to religiously do "git prune" every time.

author
#2 lore raw
Quoted 8 lines · Junio C Hamano
Quoted 5 lines · Jens Axboe
$ rm .git/refs/heads/branch-name
$ git prune

to rid myself of the branch and associated objects. Is there a faster approach?

Quoted 6 lines

Perhaps the "official" way is

	$ git branch -d branch-name ;# you may need -D
        $ git prune

but that essentially is the same as what you are doing. Note

So no time saved there :-)

Quoted 2 lines

that having dangling objects in your repository is not a crime, and you do not have to religiously do "git prune" every time.

I know, it just doesn't feel nice!

Signature · 1 line
Jens Axboe
#3 lore raw
Quoted 4 lines · Jens Axboe
Quoted 2 lines

that having dangling objects in your repository is not a crime, and you do not have to religiously do "git prune" every time.

I know, it just doesn't feel nice!

Sorry, but I can think of only three reasons (and a half) why somebody cannot live with "one git prune at the end of the day before leaving" (or "week" for that matter) workflow:

* the filesystem quota is too tight and you cannot afford to leave unused loose objects around. May still be true on student accounts, perhaps, but I doubt this is much of an issue in the modern world anymore.

* rsync is used to sync from a repository that dropped a branch just now, and you do not want to push the garbage out. Well, if you are still using rsync, I'll tell about it to Linus ;-) Pushing via git native protocol over ssh would not send unreferenced objects out and will not contaminate the other end with the garbage.

* you do not want to leave after starting prune before it finishes. If it is your hobby to watch the paint dry, I cannot help you, but you could run prune under nohup (or always work inside "screen", which is what I do).

+ having unused things on the disk just does not _feel_ right. Well, maybe. I can argue with a reason but not with a feeling. On a bright side, leaving recently abandoned objects around for a while lets you run git-lost-found to recover if you accidentally deleted a still-useful branch.

author
#4 lore raw
Quoted 7 lines · Junio C Hamano
Quoted 4 lines · Jens Axboe
Quoted 2 lines

that having dangling objects in your repository is not a crime, and you do not have to religiously do "git prune" every time.

I know, it just doesn't feel nice!

Quoted 8 lines

Sorry, but I can think of only three reasons (and a half) why somebody cannot live with "one git prune at the end of the day before leaving" (or "week" for that matter) workflow:

* the filesystem quota is too tight and you cannot afford to leave unused loose objects around. May still be true on student accounts, perhaps, but I doubt this is much of an issue in the modern world anymore.

Yeah obviously not true.

Quoted 6 lines

* rsync is used to sync from a repository that dropped a branch just now, and you do not want to push the garbage out. Well, if you are still using rsync, I'll tell about it to Linus ;-) Pushing via git native protocol over ssh would not send unreferenced objects out and will not contaminate the other end with the garbage.

Haven't used rsync in a long time, I use git:// and ssh:// exclusively.

Quoted 10 lines

* you do not want to leave after starting prune before it finishes. If it is your hobby to watch the paint dry, I cannot help you, but you could run prune under nohup (or always work inside "screen", which is what I do).

+ having unused things on the disk just does not _feel_ right. Well, maybe. I can argue with a reason but not with a feeling. On a bright side, leaving recently abandoned objects around for a while lets you run git-lost-found to recover if you accidentally deleted a still-useful branch.

:-)

Alright, I'll just have to shake the habit of running git prune to rid myself of that dirty dirty feeling.

Signature · 1 line
Jens Axboe
#5 lore raw
Quoted 3 lines · Jens Axboe

Alright, I'll just have to shake the habit of running git prune to rid myself of that dirty dirty feeling.

Yeah, I'm slowly shaking it off too. I used to run git-fsck-objects religiously just because I worried about bugs. I still do it, but especially with the recursive-strategy merging, I get "dangling blob" messages every once in a while that are _not_ due to bugs, but just due to the temporary merge object.

So I'm learning to ignore them, and prune the tree only occasionally, instead of compulsively every time.

Linus

author
#6 lore raw
Quoted 7 lines · Linus Torvalds
Quoted 3 lines · Jens Axboe

Alright, I'll just have to shake the habit of running git prune to rid myself of that dirty dirty feeling.

Quoted 8 lines

Yeah, I'm slowly shaking it off too. I used to run git-fsck-objects religiously just because I worried about bugs. I still do it, but especially with the recursive-strategy merging, I get "dangling blob" messages every once in a while that are _not_ due to bugs, but just due to the temporary merge object.

So I'm learning to ignore them, and prune the tree only occasionally, instead of compulsively every time.

Compulsive is the right word, it just itches to run the prune after killing a branch... I'll try and learn as well.

Signature · 1 line
Jens Axboe