Prev | Current Page 120 | Next

Brad Ediger

"Advanced Rails"


??? 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