Download the SVK installer here:
- svk-2.0.2 Built using Strawberry Perl against svn 1.4.4. Approximately 8.2MB.
- Note -- this was built with (and bundles) Strawberry Perl 5.8.8 Alpha 2. If you install the new Strawbery Perl 5.10.0, you can get weird situations where the SVK perl executable is run instead of the Strawberry Perl one. (DLL hell?) For me, the answer was renaming the perl.exe in C:\Program Files\SVK\bin to svkperl.exe and changing references to perl.exe in c:\Program Files\SVK\svk.bat to match. I also deleted the PATH manipulation in svk.bat.
- svk-2.0.0 Built using Strawberry Perl against svn 1.4.2
- svk-1.08 (1.07 and 1.06) built against svn 1.3.2 and 1.4.2
- svk 1.0rc1 svk-0.993.exe SIZE: 5,320,746 | MD5: 5dcb84f234b866e370a2a77d0b2f52b5
- Built with Perl 5.8.6.
- Includes Subversion 1.1.4
- Users can now run the test suite as win32\maketest.bat.
- 100% tests pass.
Note: This is a Win32 GUI installation tool, but it installs a Win32 console version of SVK. It does not create a program group within the "Start" menu.
Note: You must have "." in your PATH in order for SVK to work properly.
Note: For those who want to use svn+ssh, you can download plink.exe and enter the following in the shell:
> set SVN_SSH="C:\whatever\plink.exe" -l username -pw password
To avoid having your password in the environment variable you can use pageant.exe, also belonging to the PuTTY suite. You enter your password only once at startup and pageant.exe stores it for you. All you need to specify is your private ssh-key-file:
> set SVN_SSH=C:\\Program\ Files\\PuTTY\\plink.exe -i private_key_file
together with the user name supplied when mirroring a repo like this
> svk mirror svn+ssh://username@server/path/to/repo //mirror-repo
SVK-Win32 now automatically detects and supports the following Win32 merge tools:
XXX TODO: basic instructions on the proper method to set SVKMERGE for these 'supported' merge tools to fix 'Cannot launch external merge tool for __.' or explanation of 'now automatically detects and supports'.
Building from source
Syncing to SVK clients via HTTP on Win32 is very, very slow, because the "replay" feature of the API is broken due to an APR / Perl threading issue. This means that for every revision, the client has to do all the donkey (camel?) work of diffing every changed file again, eating lots of CPU and taking a long time.
Using with Powershell
If you install svk several times, it can make a mess of the PATH variables in Windows. A problem occurs when Powershell finds the perl file "svk" before it finds "svk.bat". If this happens, Powershell will choke on the perl. You need to sanitise your PATH variables so that the BAT file gets found first. Powershell knows enough to spawn CMD.EXE to run batch files.
The PSH equivalent of "which" on *nix is
($Env:Path).Split(";") | Get-ChildItem -filter $arg* # where $arg is the file we are hunting
The alternative, [SVKPowerShell using a ps1 wrapper] currently doesn't work very well - the entire script has to return before it shows any output to the shell. Since fixing the paths makes the .bat file work, I've decided not to try too much harder.
An SVK snapin for Powershell would be great though - returning full automatable objects instead of a stream of text.
Call for help on VCP/SVK support
SVK mirror of CVS and Perforce has been tested and found broken on Win32.
The only showstopper for this highly desirable function is that
VCP::Desk::svk has two symlink()
calls and one link() call, which are unsupported on Win32.
09:30 < autrijus> clkao: can you refactor ::Dest::svk to not use symlinks? 09:31 < clkao> autrijus: not really in my todo. 09:31 < clkao> autrijus: just carefully substitute them with renames 09:32 < clkao> make that note on svkwin32 page bah
So, volunteers wanted for patching ::Dest::svk to turn symlink() and link()
into rename() and copy() calls, and/or bribe clkao to move it higher up on his todo list.
Update: AutrijusTang wrote the Win32::Hardlink and Win32::Symlink modules on CPAN
to do the same thing. But apparently link() fails for some reason, so volunteers
are still wanted to carry on the investigation. The patched VCP::Dest::svk is available
at http://wagner.elixus.org/~autrijus/svk.pm -- you need a native version of cvs.exe
to test it against SVN-Mirror's t/3vcp-cvs.t.
See you on irc.freenode.net #svk :-)
Problem when using -m '...' (single quotes for commit messages) on Windows XP
I am new to svk, but know svn pretty well and I am testing it mainly because of the branch merge features. I am using the binary Windows distribution, and when I tried to follow some of the examples in the SVKBook (copying within the depot), it didn't work with this error message:
D:\>svk copy -m 'create local branch of test repository' //myMirrors/test //local/test path D:\local is not a checkout path.
When I do the same using the -m "..." (double quotes) syntax, it works:
D:\>svk copy -m "create local branch of test repository" //myMirrors/test //local/test Committed revision 221.
Since all the examples I have found use single quotes, I guess it should be mentioned somewhere that under Windows, you have to use double quotes.
question by John Nystrom//) -- There is nothing special about svk compared to all other Windows applications. The path in question is the PATH.
SET PATH=.;%PATH% -- Chaim Krause