|
![](/i/fill.gif) |
On 4/20/2011 9:03, Invisible wrote:
> Fundamentally, VCS are about tracking changes. Git might *implement* that by
> storing the entire file, but *logically* what you're trying to do is keep
> track of what you changed.
Or, as an alternate example, say you've been working and every day you
commit before lunch and you commit before you go home, even if it's not
working, just so it gets backed up. And you implement two functions, and you
write code on that, and then realize you should have put that first function
elsewhere, and you don't need the second function at all, and the other code
should be in separate objects, and etc etc etc.
And at the end of the week, you have 50 messy changes committed.
With git, you can say "OK, go diff the current version against where I
branched, and give me exactly one commit with all the changes I need." It's
trivial to do that in git and then say "now commit *that* change for
everyone else to see, and abandon all the intermediate changes."
I don't know how you'd do something like that in mercurial or darcs that
store *changes* in the repository.
--
Darren New, San Diego CA, USA (PST)
"Coding without comments is like
driving without turn signals."
Post a reply to this message
|
![](/i/fill.gif) |