Re: [PATCH 2/2] git-gc: skip stashes when expiring reflogs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



El 13/6/2008, a las 23:41, Johannes Schindelin escribió:

Hi,

On Fri, 13 Jun 2008, Wincent Colaiuta wrote:

El 13/6/2008, a las 6:52, Johannes Schindelin escribió:

If you need something from the stash a day after stashing it, you have
a serious problem with understanding what branches are for.

While this may be true for codebases which move forward quickly, what
about one which is basically finished and tends not to get touched in a long time. A situation arises, you stash something, the phone rings, and for whatever reason the stash gets forgotten and you don't revisit the
project at all for days, weeks, months. It wouldn't be nice to
eventually come back and discover that your in-progress work had been
"garbage" collected for you.

You cannot be serious about not wanting to lose the changes when you keep
them in _one_ _single_ repository anyway.

And you cannot be serious about not wanting to lose the changes when you
forget about them, for months, even.

So you are making my point for me.

Your arguments are _totally_ spurious.

With respect to your first point, I didn't even mention repository duplication and backups so I don't know why you tried to inject it into the discussion. I am _completely_ serious about preserving my data in the repos I work on, and that's why I do automated backups of the home directory which contains all of my local working repos every two hours (ie 12 times per day), plus an automated whole-disk backup once every 24 hours. However, my point about "git stash" is completely independent of my backup regimen; the backup regimen exists to protect me against disk and system failures, not to protect me from my SCM.

And on your second point, you are arguing that anything you can't remember isn't worth keeping, which just isn't a sustainable argument. Can you remember the thousands of commits in Git's complete history? Would it be okay to just throw away the changes you've forgotten about?

So I don't think I've made your point for you at all; it remains for you to make it for yourself. But it seems to me that you are arguing against the sizeable majority of participants on this thread which has already dragged on too long.

So, let's recap:

(1) It is reasonable to expect, and in fact it is clear that most users _do_ expect, that Git should indefinitely remember changes that they told it to remember with "git stash save"

(2) The people largely responsible for the implementation of "git stash" never envisaged its use for long term storage (either intentional abuse of "stash", or inadvertent misuse) and architected it in such a way that it can "forget" stashes after a period of time

So far you've only attacked the first point, and your defense of the second point has consisted of nothing more than an affirmation that the status quo should remain in place because that's the way it's always been. I haven't yet heard any explanation of _why_ it's such a big deal to adjust the behaviour of the tool to match user expectations, expectations created partly by poor documentation but mostly by an unfortunate choice of name for the "stash" command.

We have a choice: re-educate users or modify the tool, and re- education seems of questionable value (for what?) and much more difficult than the latter, which has next to no cost at all. Modify the tool and we won't have to re-educate users: those who abuse "git stash" for long term storage will soon figure out that they're not using it in the best possible way when their stash list gets out of hand, and as an added bonus nobody will ever get burnt by Git throwing away something that they thought it should have kept.

An auto-expiration config variable should be enough to keep people like you happy, as you'll get to keep your auto-garbage-collected stash list, but the auto-expiration should be _off_ by default because it's best to err on the conservative side about throwing out data. Especially in a case like this one where it is clearly demonstrated that most people are surprised to learn that Git garbage collects old stashes.

Anyway, I've now stated and restated these arguments enough times and I don't think I have anything to add.

Wincent

--
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux