SVK Aquired by Best Practical

I’m a little behind on the mailing lists, but I found that on June 5 it was announced that Best Practical Solutions, LLC has aquired SVK. SVK is a distributed version control system written on top of Subversion and provides the ability to mirror Subversion and CVS repositories to your local machine in order to work in a distributed fashion. It also provides advanced branching and merging capabilities far and above what the core Subversion product provides. Read the official announcement here.

Best Practical, LLC produces Open Source incident response, request tracking, and FAQ management software. Chia-liang Kao, the author of SVK, has joined Best Practical as a partner.

Related posts

Tagged with: , ,

Hey, they’re writing an SVK book!

I didn’t notice this before (I haven’t really been to the SVK site in a while), but they are actually writing a full blown SVK book. They make quite clear that the book is still a work in progress, but I’m glad to see this kind of work going on to further explain this great tool and wanted to make sure people using SVK (or trying to use it at least) knew it was there.

It looks like the book is being authored in the the same way the Subversion book was written — authored in XML and transformed to HTML. Could an O’Reilly book be in SVK’s future as well?

Related posts

Tagged with:

  • SVK 1.0.3 introduces bugs to be fixed in 1.0.4 - The recent release of SVK 1.0.3 introduced “insufficient lockings in a few commands” that were not caught by automated tests. A 1.0.4 release is currently underway. Comments Off

SVK Visual Guide 0.2 Available

It was announced on the SVK Development mailing list that there is a Visual Guide to SVK being developed.

The current version of the document is version 0.2.

I have yet to be able to download it (the connection is timing out), however, I thought I’d put the link up here so that I (and others) can find it easily.

Updates will be posted on the Visual Guide page of the SVK Wiki.

Related posts

Tagged with:

  • SVK 1.0.1 has been released. This release “fixes many edge cases and also improves performance and memory usage”. Click link for official announcement. Comments Off

SVK 1.00 and Wordpress 1.5.1 releases.

Chia-liang Kao, author of the SVK source control tool, announced the release of SVK 1.0 final today.

And if that wasn’t enough for you, the Wordpress folks have announced the release of Wordpress 1.5.1. Download it now. Information on what has changed is available in the ChangeLog on the codex.

Update: 5/10/2005
A quick check of CPAN this morning finds SVK 1.0 out on the mirrors. Go ahead and install it with the following (as root):

perl -MCPAN -e ‘install SVK’

Related posts

Tagged with:

SVK 1.0 Release Candidate 1 released.

Chia-liang Kao announced today that SVK 1.0 Release Candidate 1 has been released. If no show stoppers are reported, this will be the 1.0 release.

Related posts

Tagged with:

SVK 1.0 Beta 2 released.

Yesterday, the release of SVK 1.0 Beta 2 was announced .

The announcements list the following changes since Beta 1:

  • Fix keyword translation for undesired characters. [matthewd]
  • Fix svk switch from a removed branch.
  • Don’t trust LML would return a valid encoding that Encode knows. [Eric Gillespie ]
  • Recognize merge-conflict error, so no stacktrace for it.
  • svk info now skips files not under version control. [#8220] [gugod]
  • Fix locked mirror messages.
  • Various pool usage fixes.

The software can be downloaded from the SVK download area.

Related posts

Tagged with: ,

svk 1.0beta1 Released

In a message to the SVK dev list, Chia-liang Kao, original author and project maintainer for the SVK version control system, has announced that the software has hit beta stage.

According to the message there will be a three week beta period, followed by a two week release candidate release cycle, if everything goes well. The 1.o release would follow.

Related posts

Explaining the SVK Workflow

As I’m beginning to talk to people about the SVK version control tool more, I’m noticing that the concept of mirroring isn’t as obvious to some people as it was to me when I started messing around with it (or maybe I just choose not to remember how unobvious it was), so I thought I would take some time to try to explain some of the concepts at an extremely high (and hopefully easier to understand) level.

Sometimes the best way to explain a concept is with a picture, so I threw together this small data flow diagram that shows the flow of data through the SVK system and what commands cause this data transfer to happen.

SVK WorkFlow


The basic high level workflow of an SVK session looks like this:

  1. Create A Mirror
    You mirror the repository using the svk mirror command. For me, I find it easiest to create my mirrors at the topmost level (for example, a mirror of the bieberlabs trunk might be at //bieberlabs/trunk).
  2. Synchronize Your Mirror
    This brings down the revisions that you do not have yet in your main (and remote) repository to your newly established mirrored path.
  3. Create a Local Branch To Do Your Work
    Many times I see that people default to checking out from the actual mirror (in the above example, //bieberlabs/trunk). This will work, but you lose the whole beneifit of SVK. If you check out of a mirror, every commit you make will be synchronized back to the main repository. This is not desired behavior most of the time. So, create a local branch first. I like to create a top level directory in the repository called //local that I put my local branches in, just so I know where to find them.
  4. Periodically synchronize your mirror and merge those changes into your local branch
    This is where all of the power is. You now have a local branch that you can keep completely up to date with the repository that others are doing work in. Using the svk smerge command, you can merge changes from //bieberlabs//trunk to //local/mychange as you synchronize your mirror. This allows you to always be working on the current code. You can commit your work and not effect anyone else working in the repository until you are ready to merge into the mirror.
  5. Once you have merged changes to your local branch, update your workarea
    A common misunderstanding when you smerge into your local branch is that the changes appear magically in your workarea. This is not the case. Remember, when you are smerging you are working in the repository. You still have to update your workarea (and possibly resolve conflicts) from the repository in order to reflect your changes.
  6. Merge your branch back into the mirror
    Once you have finished your change, tested and committed (probably multiple times), you can now smerge your branch back into the mirror. When you perform this merge, the changes will be moved to the source repository and subsequently synced to your mirror (the line in the diagram is red to signify this). Once this happens, all of your changes are visible to everyone else, in one commit.

Here’s the nice thing about working like this. When merging back and forth, you are not searching for ranges of revision numbers to merge. SVK remembers each merge done, so you can use your local branch forever, because you can constantly keep it up to date. This gets rid of the “make a branch, change the branch, merge the branch , delete the branch” cycle and allows you to have one place to work all of the time.

I hope that this really high level view gives a better understanding of the workflow surrounding using SVK and illustrates very simply the advantages of the tool.

For a step by step walk through the tool, you can go through the SVK tutorials.

Related posts

Tagged with: ,

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 2.5 License.

SVK 0.30 Install for Windows Available

An installer for SVK 0.30 for Windows is available here. This is not a standalone .EXE file, but an installer for the SVK tool.

Some caveats from looking at it briefly this morning:

  • Make sure you have Subversion installed. I thought I had installed it already on my Windows XP machine - but I was wrong.
  • I was unable to authenticate with my SSL WebDAV server through SVK. I had to execute an svn ls https://blah.blah.blah in order to authenticate properly. Once I did this, I was able to create a mirror and sync to it.

I’m not sure if this is the “official” version of the Windows install, but it is one that is available for those who want to start running 0.30.

Related posts

Tagged with: ,

SVK 0.30 released.

SVK version 0.30 has been released today. You can download it from the main SVK site. You can view the list of changes in the announcement e-mail from the mailing list archive.

As an FYI, I just tried to update from CPAN, but received 0.29, so it doesn’t look like it’s hit the mirrors yet.

Related posts

Another Satisfied SVK Customer …

Matthew Scott read the first part of my SVK tutorial and decided to try it out for himself.

Apparently he got some good results, but found a limitation related to svn:externals.

Related posts

SVK Tutorial Feedback

I’m getting some positive feedback on the set of SVK tutorials that I wrote a few weeks back. Thanks to everyone sending comments and commenting on them on your blogs. It’s really encouraging to know that something you have worked through and written down has been helpful to other people in investigating a really useful tool.

Keep the feedback coming.

As an aside, there is a great article on perl.com about SVK that was written by the tools author. Well worth the read.

Related posts

Tagged with: