[Changes for 2.0.0 - ? ???, 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 * Support -R 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