[Changes for 2.0.2 - 20 Jul, 2007]
Mirror subsystem
- be more friendly when trying to relocating incorrect mirror
path.
Merge subsystem
- Fix a problem when repeatedly merging renames tracked with
--track-renames, and when merging back such files.
- Fix the "file not found at revision 0" bug when smerge to a
mirror where copy source is not normalized.
- Fix a bug that deletes inside copies aren't properly merged
across branches even the status output says so.
- Fix a bug when merging copies across branches we be using
incorrect dst revision causing "file not found at revision 0".
- Fix a bug where copies outside the mirror source across merge
are not expanded as non-copies.
- Fix an inconsistency for smerge -IC behaviour when the base is
a txn path.
Pullyu
- properly translate to local path when mirroring remote root.
- Fix pullyu for translating "included" records, which are
replaced entries.
Others
- Improve error reporting when failed to save config.
- Perl 5.9.5 compatibility fixes.
- Work around a problem that push -P might be using outdated
memory pool.
- svk diff -r:123 should report invalid -r rather than blow up.
- Add -i as shorthand for --interactive in svk ci.
- Various win32 fixes.
- Various i18n fixes.
[Changes for 2.0.1 - 26 Mar, 2007]
Mirror subsystem
- You can now use $SVKNORAREPLAY forcing svk to use old SVN::Mirror
for sync.
- Fix a bug when mirroring partial repository with copies, the from
revision number might not be exactly the ones we have mirrored.
- In the pipelined sync editor, use pool more wisely for invoking
editor calls. This fixes the memory bloat for syncing revisions
with large number of deleted files.
- In pipelined replay, make perl don't segfault on SIGINT.
- Fix the bug committing to subdirs of mirrors that are on /.
- Fix a bug preventing mirror --relocate to work on mirrors on '/'.
- Fix a problem replaying failing with RA_DAV_REQUEST_FAILED in some
servers.
Merge subsystem
- Fix a pool usage in Editor::Merge::apply_textdelta, which has a
side-effect causing rename-tracking smerge on a new file inside a
renamed directory to fail with SWIG-runtime error.
- Prevent unwanted repeated merges when repeatedly merging tags to a
branch. We now also record the copy source(s) of the path being
merged from in the merge ticket.
- Fix a bug in merging moved files that are modified.
- Fix a bug that smerge to checkout with changes to a copied file is
causing incomplete svn delta string.
- When merging the replaced directory, do not ignore the fact when
the delete part is already conflicting.
- Fix a bug when merging a copy that happened on an intermediate
branch, which might not map back to the merge destination.
Tools
- verify-mirror improvements.
- Ship vc-svk.el with the distribution.
Others
- Make updating a checkout that no longer exists in the depot give
proper message.
- Make checkout more robust when resuming a interrupted checkout.
- Check for .svk/floating before assuming floating checkout.
- Fix a regression which caused binary files to sometimes be
displayed as text during an "svk diff".
[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@M will find
the correct path if PATH@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
path separators
svk info
- Improve the "Depot path" information
- Fix the bug that "svk info non-existent-file" display exception
messages twice
- Support -R
- fix the bug that "svk info" blows up on checkout added with history
- Sort "merged from" in "svk info" output
- Make info path@N work even if path is deleted on revision N+1
svk list
- Display single when used on a file
svk log
- filter and output plugin support
- Support --quiet
- Support --xml
- Change behavior of log not to stop on a rename
svk merge
- Support -c REV@ and -REV@
svk mirror
- Make sure that columns in mirror listings line up even if the depot
paths are long
svk move
- Fix unicde filename bugs
- Fix 'svk mv dir dir/subdir' and 'svk mv * dir'
svk patch
- Allow for "svk patch ls" to stand for "svk patch --ls"
and generally dropping -- off subcommands for "patch"
- Fix a bug for displaying patch with copies
svk proplist, propget
svk pull
- Support --force-incremental
svk push
- Fix a problem pushing from renamed branch
svk revert
- Support --quiet
- Fix unicde filename bugs
- Fix a revert bug when reverting a copied directory with
deleted entries
svk smerge
- Document sm --summary
- Allow --base in merge command to override merge base
when there's one
- Fix a bug where smerge fails to merge files to checkout that
are copied from somewhere else
- Disallow smerge with -c or -r, as they will be ignored
- Allow --track-rename for smerge
svk status
- Support --verbose
- Fix svk st on deeply deleted nodes
- Fix st when run inside a added path
svk sync
- Exit with non-zero when failed
svk switch
- Fix switching from a branch that is removed in HEAD
- Switch now takes url
svk update
- Disallow up -N, as it doesn't update the DH state correctly
- Fix a bug that 'svk update' can assume part of your directory
are already up-to-date even when they are not
Tools
- "verify-mirror" for verifying mirrored revision integrity
- "pullyu" for reconstructing original repository from a mirror
Internal
- Optionally use Log4perl to log debug information
- The callbacks used in merge editor are now SVK::Inspector
- Use SVK::Accessor for classes requires cloning but keeping certain
fields shared
- SVN::Mirror is now replaced by SVK::Mirror if you use Subversion 1.4
and the server support replay
- Support mirror on root path as repository replication
- Workaround problems in some SVN::Core build that swig doesn't
like overloaded or magic pv as const char *
- Overhaul SVK's global lock and checkout lock handling
- If svk:notify-commit is set on rev 0, set the svk:commit property on
the txn so the hook scripts know the commit is coming from svk
- Allow post_handler used in get_editor to stop committed callback from
being run by returning 0
- Rewrite support of svn:ignore and auto-props to use apr_fnmatch
- SVK::Config and SVK::Depot
- We now use SVK::Editor as editor base class
- $SVKSVNBACKTRACE environment variable to do stack dump on svn errors