??? Similarly, there is no way to maintain local modifications to a remote branch.
Any needed modifications can only be kept in the working copy, where they are
unversioned.
??? No history is kept of how external versions relate to the local repository. If you
want to update your working copy to last month??™s version, nobody knows what
version the external code was at.
82 | Chapter 3: Rails Plugins
To solve these problems, Fran?§ois Beausoleil created Piston,* a program to manage
vendor branches in Subversion. Piston imports the remote branch into the local
repository, only synchronizing when requested. As a full copy of the code exists
inside the project??™s repository, it can be modified as needed. Any changes made to
the local copy will be merged when the project is updated from the remote server.
Piston is available as a gem; install it with sudo gem install --include-dependencies
piston.
To install a plugin using Piston, you need to manually find the Subversion URL of
the repository. Then, simply import it with Piston, specifying the repository URL and
the destination path in your working copy:
$ piston import http://svn.rubyonrails.org/rails/plugins/deadlock_retry \
vendor/plugins/deadlock_retry
Exported r7144 from 'http://svn.rubyonrails.org/rails/plugins/deadlock_retry/'
to 'vendor/plugins/deadlock_retry'
$ svn ci
The svn ci is necessary because Piston adds the code to your working copy.
Pages:
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132