Operational Details
This page lists the underlying Subversion command that occur when a Piston operation is executed.
Import
svn export REPOS_URL TARGET svn add --force TARGET svn propset piston:root, piston:uuid, piston:remote-revision, piston:local-revision TARGET svn propset piston:locked LOCK_REVISION TARGET if --lock
Convert
svn propget svn:externals TARGET Parse the returned value (is there a revision argument ?) Call Import on the returned value
Lock
svn propset piston:locked REVISION TARGET
Unlock
svn propdel piston:locked TARGET
Update
svn info REPOS_URL (Confirm Repository UUID, abort if unchanged)
svn checkout --revision ${piston:remote-revision} REPOS_URL TARGET.tmp
svn update --revision new revision from info TARGET
For each changed item:
Add:
cp TARGET.tmp/PATH TARGET/PATH && svn add TARGET/PATH
Modify:
cp TARGET.tmp/PATH TARGET/PATH
apply any local modifications
svn merge --revision ${piston:local-revision}:HEAD TARGET/PATH
Delete:
svn remove TARGET/PATH
rm -rf TARGET.tmp
svn propset piston:remote-revision, piston:local-revision TARGET
svn propset piston:locked if --lock