On 24/11/11 07:47, Sachin Deshpande wrote:
>
> Hello,
>
> I am using SVN command line client 1.6.2 on windows.
>
> I have following folder structure
>
> Trunk
>
> Folder1
>
> File1
>
> File2
>
> Folder2
>
> File3
>
> File4
>
> Folder3
>
> File5
>
> File6
>
> I have perform following local operations
>
> changed *Folder1*'s property.
>
> Modified *File1*
>
> Deleted *Folder2*
>
> **
>
> I would like to do the commit of following
>
> Property change in Folder1
>
> Deleted Folder2
>
> *But don't want to commit the changes done in File1.*
>
> How can I do it with one svn commit command ( atomic commit ).
>
> If we use
>
> Svn commit --m "msg" "Trunk\Folder1" "Trunk\Folder2"
>
> It will work properly but will also commit the changes in
> "Trunk\Folder1\File1"
>
> To avoid it if we use
>
> Svn commit --m "msg" --depth=empty "Trunk\Folder1"
> "Trunk\Folder2\File3" "Trunk\Folder2\File4" "Trunk\Folder2"
>
> Commit fails as it does not get the File3, file4 on disk.
>
> Svn commit --m "msg" --depth=empty "Trunk\Folder1" "Trunk\Folder2"
>
> Commit fails as with error.
>
> svn: Cannot non-recursively commit a directory deletion of a directory
> with child nodes
>
> Is this a bug or is there any way to perform atomic commit in the
> scenario explained.
>
> Thanks and regards,
>
> Sachin.
>
I haven't tested this but my first idea would be to use changelists.
Add Folder1 and Folder2 to a changelist
svn cl test Trunk\Folder1
svn cl test Trunk\Folder2
and then remove File1 from it
svn cl test --remove Trunk\Folder1\File1
Check that the changelist contains exactly what you want
svn st
Finally, commit using the changelist
svn ci --changelist test -m "msg"
As I said, I haven't tested this. Good luck
Giulio
Received on 2011-11-24 10:08:44 CET