Re: [RFC] New command: 'git snapshot'.
From: Fabio Augusto Dal Castel <hidden>
Date: 2016-06-15 22:46:08
Giuseppe
I use stash when I want to move away from the current hacking because a new, more urgent change must be done somewhere else
Yes. That is exactly what stash is for. Temporary fixes. Now...
Instead, I see a usecase for git snapshot for progressive temporary snapshot while working towards a more complex feature while needing temporary intermediate checkpoints
That's the idea. You could take a snapshot automatically every x minutes. For example: I'm testing it taking a snapshot on every build/compile of my project (and it is going fine, BTW).
similar to what I currently achieve using git commit (a first time) and git commit --amend as my work progresses.
Except that, in this solution, you have only ONE saved state. Also, it needs to be done manually. I wanted something automatic (like John Wiegley's sugestion)
In this respect, I wouldn't agree with the first difference you remarked, but that's just the usecase I have in mind.
Making another analogy: I see stash like a stack (you push/stash, and after you pop/apply). And I don't see stacks as a good long-term storages <g> (ok, you CAN 'cheat' and see all items other than the first) Snapshots would be like a queue: You can keep it entirely, or you can keep only the last 'n' interesting snapshots, removing the others.
I'm not sure I like the idea of creating these branches with these branchnames. What about using another refs/ subtree?
I'm also not sure <g>. The idea of refs/ is a good one, too (and could
solve the problem of 'where to store the original index?'). But my
first idea of using branches was to avoid a load of another
'maintenance' commands ('snapshot list', 'snapshot delete', etc) and
to use a more known facility (branches).
Best regards,
Fabio.