To Subversion,
it is as if you wrote the code yourself??”it is versioned alongside the rest of
your application. This makes it very simple to patch the vendor branch for local use;
simply make modifications to the working copy and check them in.
When the time comes to update the vendor branch, piston update vendor/plugins/
deadlock_retry will fetch all changes from the remote repository and merge them in.
Any local modifications will be preserved in the merge. piston update can be called
without an argument; in that case, it will recursively update any Piston-controlled
directories under the current one.
Piston-controlled directories can be locked to their current version with piston lock
and unlocked with piston unlock. And for current svn:externals users, existing
directories managed with svn:externals can be converted to Piston all at once with
piston convert.
Piston is also good for managing edge Rails, along with any patches you may apply.
To import Rails from the edge, with all of the features of Piston:
$ piston import http://svn.rubyonrails.org/rails/trunk vendor/rails
Decentralized version control
Piston effectively creates one layer between a remote repository and the working copy.
Decentralized version control systems take this model to its logical conclusion: every
working copy is a repository, equally able to share changes with other repositories.
Pages:
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133