I need to write a script that deploy many cygwin applications with svn-1.6-17. All my attempts were finished by installing or svn-1.7, or nothing.
I tried to install subversion, subversion-1.6, subversion-1.6-17. It all was useless.
How I can install previous version of package by console on cygwin?
I just went through this and I'm adding this to help the next person. Note: this same technique will probably work for any Cygwin package.
We have a third party product that talks directly to the subversion server, but keeps its directories in the 1.6 format. If the local directories are updated, the tool breaks. But I needed a way to do a svn cleanup
for times when the tool got in a bad state.
Here's how I went about doing this:
Cygwin Time Machine at crouchingtigerhiddenfruitbat.org maintains archives of previous releases. Each release consists of a setup.bz2 (the compressed setup.ini file) and a collection of related archives for the packages of that release.
I searched the cygwin-announce mailinglist for updates of subversion. The last update for 1.6 was June 10, 2011.
Next, I walked through the crouchingtigerhiddenfruitbat.org indexes of previous releases from that date until I found the last release of svn 1.6, It was the July 1, 2011 release.
I downloaded setup.bz2 from the corresponding directory on crouchingtigerhiddenfruitbat (in this case: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/2011/07/01/062011/setup.bz2). I used bunzip2 to unpack setup.bz2 to a simple text file. I found the entry for subversion and copied the path of the install tarball (release/subversion/subversion-1.6.17-1.tar.bz2). The section you're looking for looks like this:
@ subversion
sdesc: "A version control system"
ldesc: "Subversion is a version control system that aims to be a compelling
replacement for CVS in the open source community"
category: Devel
requires: libapr1 libaprutil1 libdb4.5 libexpat1 libgcc1 libintl8 libneon27 libsasl2 libserf0_1 libsqlite3_0 zlib0 cygwin
version: 1.6.17-1
install: release/subversion/subversion-1.6.17-1.tar.bz2 775392 ed0c4a3cc494564c0539dffedcd5e8b6
source: release/subversion/subversion-1.6.17-1-src.tar.bz2 5551632 1b41eede9a14ea4cedcc462b06b1f7cb
[prev]
version: 1.6.16-1
install: release/subversion/subversion-1.6.16-1.tar.bz2 1476151 ecbc29b1e1d9694bf8792e3871efa5f8
source: release/subversion/subversion-1.6.16-1-src.tar.bz2 5557232 cb12425d2345a57341f16ad0ff559b84
We're interested in this line that gives the relative path to the 1.6 svn tarball:
install: release/subversion/subversion-1.6.17-1.tar.bz2 775392
I retrieved the tarball for subversion and extracted it to a temporary directory (temp). I moved the contents of temp/usr/bin to a svn16 directory.
Now, I can prepend that directory to the search path and get the functionality of svn 1.6 like so:
PATH=~/svn16:$PATH svn up
Note: It looks like the Cygwin Time Machine no longer allows directory browsing. This means you'll need to start from the root an dig a bit to find a package.
Updated with links as I just needed to do this again.
Note 2: Updated links to crouchingtigerhiddenfruitbat
1) Download a subversion
package from a download site offered by the cygwin
installer.
I personally took it from here (64 bit version) and saved it into an empty directory.
EDIT: If you want the 32-bit version, just remov the "_64" from the URL.
2) Start the cygwin
installer and choose Install from Local Directory
when it asks to choose from a download source.
3) Locate everything related to subversion
. Uninstall the unwanted version and install the old one. The newer version is already uninstalled on the image.