[svk-devel] svk 2.0.0 is released.

Chia-Liang Kao clkao at clkao.org
Thu Dec 28 09:14:38 EST 2006


Hi all,

On behalf of the SVK team, I'm pleased to announce SVK 2.0.0.  This is
the first major release after 18 months of development since SVK 1.0
was released in May 2005.  Although we didn't make it by Christmas, we
hope you had a great holiday and wish you a productive year in 2007
with new SVK.  The release is available on CPAN:

 file: $CPAN/authors/id/C/CL/CLKAO/SVK-v2.0.0.tar.gz
 size: 422489 bytes
  md5: 37ff4acde9f9a0f987bde48b32616ab3

We have been testing the release for daily development and recommend
upgrading from 1.0, particularly because 2.0 gives more correct
results on merges in various cases.

The detailed changelogs are at the end.  Here are some of the major new
features:

* Interactive commits

  You can now use "svk commit --interactive".  svk will work you
  through each chunk of changes in each file, and let you decide
  exactly which ones you want to commit.

* Floating checkout

  You can now use "svk checkout --float" to have the checkout metadata
  stored in the top-level directory of the checkout copy.  This allows
  you to move the checkout copy around without having to use "svk
  checkout --relocate".

* View support

  svk's "views" are much like views in databases. You can now set up a
  "view" that is actually a map to different parts of a
  repository. You can then check out the "view" and work with it as if
  it's just an ordinary svk checkout path.

  Please note that this feature is still not recommended for
  production use, as some commands do not work properly in view
  checkouts.

* Log filter plugins

  You can now write custom log processing plugins for filtering and
  displaying log messages; svk ships with several, and others are
  available on CPAN.  For example, try "svk log --filter 'author
  clkao'" or "svk log --output stat" (the latter requires
  SVK::Log::Filter::Stats from CPAN).

* Better copy and rename support across merge.

  This solves the problem described in:

  http://svn.haxx.se/dev/archive-2005-08/0712.shtml

* Pipelined sync support

  You should notice significant sync performance improvements if you
  have both Subversion 1.4 on the client and the server.

* pullyu

  An utility "pullyu" is included.  It can generate svn dump from a
  svk mirror for the original repository.

* Startup time improvements

* Many, many bugfixes and tiny features

[Changes for 2.0.0 - 28 Dec, 2006]

  Dependency
    * Require Subversion 1.3.0
    * Require App::CLI, UNIVERSAL::require, YAML::Syck, Path::Class,
      Class::Accessor::Fast, Class::Data::Inheritable
    * No longer require YAML, Clone, Regexp::Shellish, Date::Parse

  Performance:
    * Don't load Locale::* modules if the user's language is English
    * Reduce Data::Hierarchy calls in checkout_delta
    * SVK::Mirror now uses a separate process to pipeline sync
    * Use POSIX::strftime for date formatting rather than Date::Parse
      The log command now runs about 25% faster when generating long
      logs

  Merge subsystem
    * Renames and copies can now be merged across branches
    * svk now tries to use alleged merge result as next merge base,
      making push more reliable and accurate
    * Interactive tree conflict resolution
    * Display the anchor along with THEIR and YOUR during interactive
      conflict resolution
    * Use svn:date to find the closest ancestor, not the revision number
    * use only related node as base if it is one of merge source or
      destination
    * When picking base, the immediate merged-from source should take
      precedence
    * When doing add-merge on checkout, unschedule the add
    * Only consider a g-merge to be a change when the merge source and
      destination paths are the same
    * Fix a leak in SVK::Editor::Merge in delete_entry
    * Fix merging a file change or deletion which has been replaced as
      directory

  Tests:
    * Test helpers are now in SVK::Test
    * Don't use the user's .subversion/config during tests

  General
    * Support view spec as depotpath
    * Support win32 and keychain auth providers if available
    * Modularize the MIME type detection code which makes that feature
      optional
    * New command: svk ignore
    * New global option --ignore
    * svk --version now displays the Subversion bindings version number
    * Make -r{DATE} consistent with Subversion, by making YYYY-MM-DD be
      midnight at the beginning of that day
    * Add the negative number revision support
    * Make -r HEAD and -r BASE case insensitive
    * Most svk commands now find peg revision.  -r N PATH at M will find
      the correct path if PATH at M was copied from somewhere else after N
    * Fix a bug in replaced copy schedule entries in XD

  svk add
    * Display " - (bin)" when adding executable files

  svk annotate
    * Documented --remoterev option

  svk checkout
    * Support floating checkout
    * Allow svk co --detach to be applied to multiple checkouts
    * Fix co --relocate with checkout schedule information
    * When doing autovivification from URL, release the giant lock and
      tell user what to do if the sync failed

  svk commit
    * Support chunk-based interactive commit
    * Don't suck file into memory on commit
    * Support --set-revprop
    * Fix committing single-file checkout

  svk copy
    * Fix a bug that svk cp A B would die if A has properties
    * Support -r N@
    * When trying to copy across mirrors, suggests sm -IB for publish
    * Cleanup stalled txn after died
    * Fix "svk cp //path%2Fwith_escape //path/other", which the underlying
      library was unescaping for us
    * Make copy work with directory with unknown files

  svk delete
    * Support --force
    * On failed rm, report all modified, unknown and scheduled nodes
      instead of just the first one, and suggests --force
    * Support rm multiple depotpath

  svk describe
    * Fix "svk desc 1234@"
    * Report error immediate if a nonexistent revision is given
    * Let 'svk desc 456' work even the checkout in . is only at r123

  svk depot
    * Fix error messages in depot --relocate

  svk diff
    * Fix svk diff on 0-length file on checkout
    * Support --non-recursive (-N)
    * Support --change (-c)
    * Only show differences from copy source for copied nodes
      unless -X is specified
    * Show 'new directory' and copied from in diffs
    * Fix svk diff depotfile checkoutfile
    * Fix diff with copies and modified files
    * Changed diff output for binaries to show file names using local

Enjoy,


Cheers,
CLK


More information about the svk-devel mailing list