Let's say I have working copies of several different folders from my SVN repository scattered across my file system. Their parent directories are not part of the repository. E.g.
somedir1\
workingcopyOfA\
workingcopyOfB\
somedir2\
somedir3\
workingcopyOfC\
workingcopyOfD\
Now they all contain changes which I would like to check-in at once (calling svn only once for convenience, using only one new revision number for simplicity).
Is this possible? Is this what changelists are meant for? What can I do if I use svn < v1.5?
(There are some similar questions here on SO, but they refer to different problems.)
EDIT: To clarify: The working copies all belong to the same repository, but to different parts, i.e. the repository looks like this:
RepoDirA\
RepoDirB\
RepoDirC\
RepoDirD\
As other noted, it is not possible as is for good reasons (see D Garcia's answer notably).
If eclipse supports something like it, I suspect it creates multiple checkins behind your back.
What is possible however is to diff the changes in one working directory and apply those changes to the other working directory (if they overlap). Once you've done that, all your changes are in the single working directory where you can check in from. The merging issues D Garcia pointed at are now your responsibility to resolve at patch time.
If your working directories don't overlap, and the only reason you have multiple working directories is because e.g. you did not want to pull the whole repository, I suggest checking out the hierarchy to the common root of your working directories, but non-recursively (using svn co -N root) and then get the specific working directories with svn update path/to/subsetOfInterest for the intermediate directories). That way, they all live inside the same working directory, and allow to work on them atomically.
I know that Eclipse can do this but maybe they are using some tricks inside (because you can commit projects which use different repositories, too, for example one which is in CVS and the other in SVN).
I suggest to just try it with your client. If it doesn't work, it'll print an error. You can't possibly break anything.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With