RE: Darcs-style interactive commits
From: Rob Hubbard <Rob.Hubbard_at_celoxica.com>
Date: 2006-11-06 17:44:21 CET
I have some feature suggestions relating to this...
When committing a set of files (using Tortoise, for example), you may spend quite some time selecting a subset of the files. If the commit fails (perhaps due to a hook script) then there is no record of the selection made. (This would not be a problem with a command-line client commit, of course.)
That might seem off topic, or on the wrong mailing list, but I have a little detail to add.
I agree that it would be useful even to be able to "partially commit" files; that is, commit a subset of the changes made to each given file.
1I would love to see some features added to "svn commit":
[1] Commit Files and Properties
When no --message (or --file) is specified, and EDITOR opens for a commit message to be entered. This also shows the list of files. I'd like to see a couple of enhancements to this: I'd like to be able to force this action, even if a commit message is supplied. I'd also like to see the properties, in addition to the files, that have changed.
([1b] A bit off topic, it would also be useful to be able to get a summary of which properties have changed from svn status.)
([1c] Yet further off topic, and probably further from reality, I wonder why the design of SVN treats files and properties separately. This would be a *major* change, but perhaps property "ppty" of file "file.ext" in directory "dir/subdir" should be referred to in the svn file system just as "dir/subdir/file.ext/ppty". Then, there would be no reason why properties themselves could not have properties -- meta-meta-data. That would be useful when properties are used to store, for example, thumbnails of image files; these could have their own properties. I believe there would be many advantages to this approach. The system would need a way to distinguish a "property" from a "file", especially a property of a directory; perhaps it could be handled via a new node kind.)
[2] Commit Failure Dump
When a commit fails, it would be good to have a dump file (or, better, set of files) in the working copy created containing a list of files, the commit message, and the error message(s) from the client or server.
[3] Line Selection and Attaching a Delta
When committing, a set of files may be specified via the --targets option. It would be useful if you could attach a "delta" to a commit (using, e.g. a --delta option). Then, in order to commit a subset of your changes, you could create a delta with "svn diff", edit it, and then use this in a commit.
I don't have a good suggestion for how to deal with property changes. It could be done via the "delta" again, but perhaps there's a better way. Perhaps separate deltas per file, and per property, could be specified somehow (perhaps using a regex). Perhaps that's too complex.
On the other hand, the manual method outlined by Steve Strobel has the advantage that changes being committed can first be tested, which is good practice. An alternative approach to this is to have a second working copy set up, and to use a directory and file diff tool to copy or move a subset of the changes there. Following the commit, these changes may be "updated" to the original working copy.
Rob.
> -----Original Message-----
_____________________________________________________________________
This email and any files transmitted with it are confidential and
---------------------------------------------------------------------
|
This is an archived mail posted to the Subversion Users mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.