One of my favourite features of the existing DVCSs is the ability to select individual changes within a file to go into a commit, e.g. darcs/hg record, or git add -p, allowing you to address the "tangled working copy problem" and produce a series of separate, logical commits, each of which does only one thing.
I've noted from Eric's blog that he has reservations about this approach, since it allows you to create changesets in your DAG that you have never tested. (http://www.ericsink.com/entries/git_index.html) However, Mercurial (or specifically, TortoiseHg) has an alternative approach to the problem in that rather than selecting chunks to commit, you select chunks to set aside in the shelve tool, or to revert altogether if need be. This approach addresses these concerns in that it allows you to untangle your working copy into a state where you can test it before you commit it.
Will Veracity be providing a similar tool, or any other form of solution to this problem? If so, what?
asked Oct 03 '11 at 17:22
We will probably do something like this in the future, but it's not something we are working on right now.
answered Oct 04 '11 at 09:50
Eric Sink ♦♦
An alternative approach would be to take advantage of Veracity's ability to easily have multiple working directories/checkouts. Simply create a new working directory (do a fresh checkout somewhere else on the disk) referencing the same changeset/baseline in your original working directory and then move over the changes that you want for the first logical commit; test and commit that. And repeat. Then discard (or revert/update) your original working directory.
With this method you can split up your changes into N logical changesets. You have the choice of making them completely independent (all starting from the same original changeset so you can merge them together later) or dependent (building sequentially upon the previous one).
Granted, this is a manual approach. But you can use DiffMerge (outside of 'vv') to compare the 2 working directories and help you move over the individual changes within a file.
answered Apr 11 '12 at 06:58
Jeff Hostetler ♦♦
There is a relatively easy way to add support for
This has nothing really VCS-dependent, only names of the commands. One can work on supporting veracity in my plugin if he needs to reuse existing implementation. I currently don’t know any other cross-VCS record implementations, but nobody says there are no.
answered Aug 26 '12 at 02:20