From: Fabio Augusto Dal Castel Date: Tue, 10 Feb 2009 20:48:33 GMT Subject: Re: [RFC] New command: 'git snapshot'. Message-ID: <38cfbb550902101248v16f0f0f0v6a48cabf498317cf@mail.gmail.com> In-Reply-To: <38cfbb550902101232l4c83b6dfjc70e1e2f79a8c3c1@mail.gmail.com> 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 (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 . 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.