view release on metacpan or search on metacpan
CHANGES-1.0 view on Meta::CPAN
This allows you to svk checkout URL and svk cp URL local-branch.
* Experimental svk push and pull support.
* sync and update now supports -s and -m to sync and/or merge from
branch source. [Autrijus]
* revert now also marks nodes as resolved.
* mirror, checkout and switch now all support --list, --detach and
--relocate. [Autrijus]
* New aliases: cm => cmerge, depot => depotmap, sw => switch.
* Implement "svk depot --add", "svk depot --delete". [Autrijus]
* prop{get,set,edit,del} on revprops. [Autrijus]
* Fix smerge -l that trims logs before another smerge in the other
direction.
CHANGES-2.0 view on Meta::CPAN
[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
CHANGES-2.0 view on Meta::CPAN
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.
CHANGES-2.0 view on Meta::CPAN
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
CHANGES-2.0 view on Meta::CPAN
* 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
t/deleted/basics.t
t/deleted/complex.t
t/deleted/copy-anchor-delete.t
t/deleted/delete-copy-anchor.t
t/diff/mixed-checkout.t
t/i18n/big5dirname.t
t/i18n/checkout.t
t/i18n/win32filename.t
t/mirror/commit-copy.t
t/mirror/dav-authz.t
t/mirror/relocate.t
t/mirror/sync-bootstrap-resume.t
t/mirror/sync-bootstrap.t
t/mirror/sync-crazy-replace.t
t/mirror/sync-edge-subtree.t
t/mirror/sync-empty.t
t/mirror/sync-escape.t
t/mirror/sync-failed-hook.t
t/mirror/sync-rebase-delta.t
t/mirror/sync-rebase-multi.t
t/mirror/sync-rebase.t
version: v2.2.3
SVK::Command::Checkout:
file: lib/SVK/Command/Checkout.pm
version: v2.2.3
SVK::Command::Checkout::detach:
file: lib/SVK/Command/Checkout.pm
SVK::Command::Checkout::list:
file: lib/SVK/Command/Checkout.pm
SVK::Command::Checkout::purge:
file: lib/SVK/Command/Checkout.pm
SVK::Command::Checkout::relocate:
file: lib/SVK/Command/Checkout.pm
SVK::Command::Cleanup:
file: lib/SVK/Command/Cleanup.pm
version: v2.2.3
SVK::Command::Cmerge:
file: lib/SVK/Command/Cmerge.pm
version: v2.2.3
SVK::Command::Commit:
file: lib/SVK/Command/Commit.pm
version: v2.2.3
version: v2.2.3
SVK::Command::Depotmap:
file: lib/SVK/Command/Depotmap.pm
version: v2.2.3
SVK::Command::Depotmap::add:
file: lib/SVK/Command/Depotmap.pm
SVK::Command::Depotmap::detach:
file: lib/SVK/Command/Depotmap.pm
SVK::Command::Depotmap::list:
file: lib/SVK/Command/Depotmap.pm
SVK::Command::Depotmap::relocate:
file: lib/SVK/Command/Depotmap.pm
SVK::Command::Describe:
file: lib/SVK/Command/Describe.pm
version: v2.2.3
SVK::Command::Diff:
file: lib/SVK/Command/Diff.pm
version: v2.2.3
SVK::Command::Help:
file: lib/SVK/Command/Help.pm
version: v2.2.3
file: lib/SVK/Command/Mirror.pm
version: v2.2.3
SVK::Command::Mirror::bootstrap:
file: lib/SVK/Command/Mirror.pm
SVK::Command::Mirror::detach:
file: lib/SVK/Command/Mirror.pm
SVK::Command::Mirror::list:
file: lib/SVK/Command/Mirror.pm
SVK::Command::Mirror::recover:
file: lib/SVK/Command/Mirror.pm
SVK::Command::Mirror::relocate:
file: lib/SVK/Command/Mirror.pm
SVK::Command::Mirror::unlock:
file: lib/SVK/Command/Mirror.pm
SVK::Command::Mirror::upgrade:
file: lib/SVK/Command/Mirror.pm
SVK::Command::Mkdir:
file: lib/SVK/Command/Mkdir.pm
version: v2.2.3
SVK::Command::Move:
file: lib/SVK/Command/Move.pm
lib/SVK/Command/Checkout.pm view on Meta::CPAN
use SVK::Util qw( get_anchor abs_path move_path splitdir $SEP get_encoding abs_path_noexist catfile );
use File::Path;
use SVK::Logger;
sub options {
($_[0]->SUPER::options,
'l|list' => 'list',
'd|delete|detach' => 'detach',
'purge' => 'purge',
'export' => 'export',
'relocate' => 'relocate',
'floating' => 'floating');
}
sub parse_arg {
my ($self, @arg) = @_;
return if $#arg < 0 || $#arg > 1;
my ($src, $dst) = @arg;
$dst = '' unless defined $dst;
lib/SVK/Command/Checkout.pm view on Meta::CPAN
sub run {
my ($self) = @_;
my $map = $self->{xd}{checkout}{hash};
my $fmt = "%1s %-30s\t%-s\n";
$logger->info(sprintf $fmt, ' ', loc('Depot Path'), loc('Path'));
$logger->info('=' x 72, "\n");
$logger->info( sort(map sprintf($fmt, -e $_ ? ' ' : '?', $map->{$_}{depotpath}, $_), grep $map->{$_}{depotpath}, keys %$map));
return;
}
package SVK::Command::Checkout::relocate;
use base qw( SVK::Command::Checkout );
use SVK::Util qw( get_anchor abs_path move_path splitdir $SEP );
use SVK::Logger;
use SVK::I18N;
sub parse_arg {
my ($self, @arg) = @_;
die loc("Do you mean svk switch %1?\n", $arg[0]) if @arg == 1;
return if @arg > 2;
return @arg;
}
sub lock { ++$_[0]->{hold_giant} }
sub run {
my ($self, $path, $report) = @_;
$self->_not_if_floating('--relocate');
my @copath = $self->_find_copath($path)
or die loc("'%1' is not a checkout path.\n", $path);
@copath == 1
or die loc("'%1' maps to multiple checkout paths.\n", $path);
my $target = abs_path ($report);
if (defined $target) {
my ($entry, @where) = $self->{xd}{checkout}->get ($target);
die loc("Overlapping checkout path is not supported (%1); use 'svk checkout --detach' to remove it first.\n", $where[0])
if exists $entry->{depotpath};
}
# Manually relocate all paths
my $hmap = $self->{xd}{checkout}{hash};
my $abs_path = abs_path($path);
if ($hmap->{$abs_path} and -d $abs_path) {
move_path($path => $report);
$target = abs_path ($report);
}
my $prefix = $copath[0].$SEP;
my $length = length($copath[0]);
my $relocate = sub {
my $map = shift;
for my $key ( sort grep { index( "$_$SEP", $prefix ) == 0 }
keys %$map ) {
$map->{ $target . substr( $key, $length ) } = delete $map->{$key};
}
};
$relocate->($hmap);
$relocate->($self->{xd}{checkout}{sticky});
$logger->info( loc("Checkout '%1' relocated to '%2'.\n", $path, $target));
return;
}
package SVK::Command::Checkout::detach;
use base qw( SVK::Command::Checkout );
use SVK::Logger;
use SVK::I18N;
sub parse_arg {
lib/SVK/Command/Checkout.pm view on Meta::CPAN
=head1 NAME
SVK::Command::Checkout - Checkout the depotpath
=head1 SYNOPSIS
checkout DEPOTPATH [PATH]
checkout --list
checkout --detach [DEPOTPATH | PATH]
checkout --relocate DEPOTPATH|PATH PATH
checkout --purge
=head1 OPTIONS
-r [--revision] REV : act on revision REV instead of the head revision
-N [--non-recursive] : do not descend recursively
-l [--list] : list checkout paths
-d [--detach] : mark a path as no longer checked out
-q [--quiet] : quiet mode
--export : export mode; checkout a detached copy
--floating : create a floating checkout
--relocate : relocate the checkout to another path
--purge : detach checkout directories which no longer exist
lib/SVK/Command/Depotmap.pm view on Meta::CPAN
use SVK::I18N;
use SVK::Logger;
use SVK::Util qw( get_buffer_from_editor abs_path move_path );
use YAML::Syck;
use File::Path;
sub options {
('l|list' => 'list',
'i|init' => 'init',
'd|delete|detach' => 'detach',
'relocate' => 'relocate');
}
sub parse_arg {
my ($self, @arg) = @_;
++$self->{hold_giant};
$self->rebless ('depotmap::add')->{add} = 1 if @arg >= 2 and !$self->{relocate};
return undef
unless $self->{add} or $self->{detach} or $self->{relocate};
@arg or die loc("Need to specify a depot name.\n");
my $depot = shift(@arg);
@arg or die loc("Need to specify a path name for depot.\n")
unless $self->{detach};
my $map = $self->{xd}{depotmap};
my $path = $depot;
my $abs_path = abs_path($path);
$depot =~ s{/}{}go;
return ($depot, @arg) if $self->{add} or $map->{$depot} or !$abs_path;
# Translate repospath into depotname
foreach my $name (sort keys %$map) {
(abs_path($map->{$name}) eq $abs_path) or next;
move_path($path => $arg[0]) if $self->{relocate} and -d $path;
return ($name, @arg);
}
return ($depot, @arg);
}
sub run {
my ($self) = @_;
my $sep = '===edit the above depot map===';
my $map = YAML::Syck::Dump ($self->{xd}{depotmap});
lib/SVK/Command/Depotmap.pm view on Meta::CPAN
die loc("Depot '%1' already exists; use 'svk depotmap --detach' to remove it first.\n", $depot)
if $self->{xd}{depotmap}{$depot};
$self->{xd}{depotmap}{$depot} = $path;
$logger->info(loc("New depot map saved."));
$self->{xd}->create_depots;
}
package SVK::Command::Depotmap::relocate;
use base qw(SVK::Command::Depotmap);
use SVK::Logger;
use SVK::I18N;
sub run {
my ($self, $depot, $path) = @_;
die loc("Depot '%1' does not exist in the depot map.\n", $depot)
if !$self->{xd}{depotmap}{$depot};
$self->{xd}{depotmap}{$depot} = $path;
$logger->info( loc("Depot '%1' relocated to '%2'.\n", $depot, $path));
$self->{xd}->create_depots;
}
package SVK::Command::Depotmap::detach;
use base qw(SVK::Command::Depotmap);
use SVK::Logger;
use SVK::I18N;
sub run {
my ($self, $depot) = @_;
lib/SVK/Command/Depotmap.pm view on Meta::CPAN
SVK::Command::Depotmap - Create or edit the depot mapping configuration
=head1 SYNOPSIS
depotmap [OPTIONS]
depotmap DEPOTNAME /path/to/repository
depotmap --list
depotmap --detach [DEPOTNAME | PATH]
depotmap --relocate [DEPOTNAME | PATH] PATH
=head1 OPTIONS
-i [--init] : initialize a default depot
-l [--list] : list current depot mappings
-d [--detach] : remove a depot from the mapping
--relocate : relocate the depot to another path
=head1 DESCRIPTION
Run this command without any options would bring up your C<$EDITOR>,
and let you edit your depot-directory mapping.
Each line contains a map entry, the format is:
depotname: '/path/to/repos'
lib/SVK/Command/Mirror.pm view on Meta::CPAN
use SVK::Util qw( is_uri get_prompt traverse_history );
use SVK::Logger;
use constant narg => undef;
sub options {
('l|list' => 'list',
'd|delete|detach'=> 'detach',
'b|bootstrap=s' => 'bootstrap',
'upgrade' => 'upgrade',
'relocate'=> 'relocate',
'unlock'=> 'unlock',
'recover'=> 'recover');
}
sub lock {} # override commit's locking
sub parse_arg {
my ($self, @arg) = @_;
@arg = ('//') if $self->{upgrade} and !@arg;
lib/SVK/Command/Mirror.pm view on Meta::CPAN
url => "$source", # this can be an URI object
pool => SVN::Pool->new
}
);
$logger->info( loc("Mirror initialized. Run svk sync %1 to start mirroring.\n", $target->report));
return;
}
package SVK::Command::Mirror::relocate;
use SVK::Logger;
use base qw(SVK::Command::Mirror);
use SVK::I18N;
sub run {
my ($self, $target, $source, @options) = @_;
my ($m, $mpath) = $target->is_mirrored;
die loc("%1 is not a mirrored path.\n", $target->depotpath) if !$m;
die loc("%1 is inside a mirrored path.\n", $target->depotpath) if $mpath;
$m->relocate($source, @options);
$logger->info( loc("Mirror relocated."));
return;
}
package SVK::Command::Mirror::detach;
use base qw(SVK::Command::Mirror);
use SVK::I18N;
use SVK::Logger;
use constant narg => 1;
lib/SVK/Command/Mirror.pm view on Meta::CPAN
=head1 SYNOPSIS
mirror [http|svn]://host/path DEPOTPATH
# You may also list the target part first:
mirror DEPOTPATH [http|svn]://host/path
mirror --bootstrap=DUMPFILE DEPOTPATH [http|svn]://host/path
mirror --list [DEPOTNAME...]
mirror --relocate DEPOTPATH [http|svn]://host/path
mirror --detach DEPOTPATH
mirror --recover DEPOTPATH
mirror --upgrade //
mirror --upgrade /DEPOTNAME/
=head1 OPTIONS
-b [--bootstrap] : mirror from a dump file
-l [--list] : list mirrored paths
-d [--detach] : mark a depotpath as no longer mirrored
--relocate : change the upstream URI for the mirrored depotpath
--recover : recover the state of a mirror path
--unlock : forcibly remove stalled locks on a mirror
--upgrade : upgrade mirror state to the latest version
lib/SVK/Command/Switch.pm view on Meta::CPAN
=head1 NAME
SVK::Command::Switch - Switch to another branch and keep local changes
=head1 SYNOPSIS
switch DEPOTPATH [PATH]
For information about how to change the mirrored location of a remote
repository, please see the C<--relocate> option to C<svk mirror>.
=head1 OPTIONS
-r [--revision] REV : act on revision REV instead of the head revision
-d [--detach] : mark a path as no longer checked out
-q [--quiet] : print as little as possible
lib/SVK/I18N/i_default.po view on Meta::CPAN
" action taken. These characters have the following meaning:"
msgstr ""
#: lib/SVK/Command.pod:49
msgid " For example, here's the way to display the info of a checkout path:"
msgstr ""
#: lib/SVK/Command.pod:51
msgid ""
" For information about how to change the mirrored location of a remote\n"
" repository, please see the --relocate option to svk mirror."
msgstr ""
#: lib/SVK/Command.pod:52
msgid " Here is an example for the value of the property:"
msgstr ""
#: lib/SVK/Command.pod:55
msgid ""
" If both --sync and --merge are specified, like in svk up -sm, it will\n"
" first synchronize the mirrored copy source path, and then smerge from\n"
lib/SVK/I18N/i_default.po view on Meta::CPAN
#: lib/SVK/Command.pod:272
msgid "--purge: detach checkout directories which no longer exist"
msgstr ""
#: lib/SVK/Command.pod:273
msgid "--recover: recover the state of a mirror path"
msgstr ""
#: lib/SVK/Command.pod:274
msgid "--relocate: change the upstream URI for the mirrored depotpath"
msgstr ""
#: lib/SVK/Command.pod:275
msgid "--relocate: relocate the checkout to another path"
msgstr ""
#: lib/SVK/Command.pod:276
msgid "--relocate: relocate the depot to another path"
msgstr ""
#: lib/SVK/Command.pod:277
msgid "--remoterev: display remote revision numbers (on mirrors only)"
msgstr ""
#: lib/SVK/Command.pod:278
msgid "--remoterev: use remote revision numbers in merge log"
msgstr ""
lib/SVK/I18N/i_default.po view on Meta::CPAN
#: lib/SVK/Command/Merge.pm:86
msgid "Can't merge across depots.\n"
msgstr ""
#: lib/SVK/Command/Merge.pm:159
msgid "Can't merge with specified revisions with smart merge.\n"
msgstr ""
#: lib/SVK/Mirror/Backend/SVNRa.pm:241
#. ($self->source_path, $source_path)
msgid "Can't relocate: mirror subdirectory changed from %1 to %2.\n"
msgstr ""
#: lib/SVK/Command/Propset.pm:166
msgid "Can't set svn:eol-style on depotpath.\n"
msgstr ""
#: lib/SVK/Command/Commit.pm:115
msgid "Can't use -F with -m.\n"
msgstr ""
lib/SVK/I18N/i_default.po view on Meta::CPAN
msgid "Changed paths:\n"
msgstr ""
#: lib/SVK/Command/Commit.pm:241
#. ($m->url)
msgid "Checking locally against mirror source %1."
msgstr ""
#: lib/SVK/Command/Checkout.pm:277
#. ($path, $target)
msgid "Checkout '%1' relocated to '%2'.\n"
msgstr ""
#: lib/SVK/Command/Info.pm:95
#. ($target->copath)
msgid "Checkout Path: %1\n"
msgstr ""
#: lib/SVK/Command.pod:363
msgid "Checkout Path: /Users/gugod/dev/svk"
msgstr ""
lib/SVK/I18N/i_default.po view on Meta::CPAN
msgid "Depot '%1' detached.\n"
msgstr ""
#: lib/SVK/Command/Depotmap.pm:143 lib/SVK/Command/Depotmap.pm:159
#. ($depot)
msgid "Depot '%1' does not exist in the depot map.\n"
msgstr ""
#: lib/SVK/Command/Depotmap.pm:148
#. ($depot, $path)
msgid "Depot '%1' relocated to '%2'.\n"
msgstr ""
#: lib/SVK/Command/Describe.pm:91
#. ($target_root->depotname, $rev)
msgid "Depot /%1/ has no revision %2\n"
msgstr ""
#: lib/SVK/Command/Mirror.pm:194
#. ($depot)
msgid "Depot /%1/ not loadable.\n"
lib/SVK/I18N/i_default.po view on Meta::CPAN
msgid "Mirror initialized. Run svk sync %1 to start mirroring.\n"
msgstr ""
#: lib/SVK/Command/Mirror.pm:141
#. ($target->depotpath)
msgid "Mirror path '%1' detached.\n"
msgstr ""
#: lib/SVK/Mirror/Backend/SVNRa.pm:258
#. ($mirror->url)
msgid "Mirror relocated to %1"
msgstr ""
#: lib/SVK/Command/Mirror.pm:123
msgid "Mirror relocated.\n"
msgstr ""
#: lib/SVK/Mirror/Backend/SVNRa.pm:233
msgid "Mirror source UUIDs differ.\n"
msgstr ""
#: lib/SVK/Command/Mirror.pm:297
msgid "Mirror state successfully recovered.\n"
msgstr ""
lib/SVK/I18N/i_default.po view on Meta::CPAN
#: lib/SVK/Command.pod:470
msgid "checkout --list"
msgstr ""
#: lib/SVK/Command.pod:471
msgid "checkout --purge"
msgstr ""
#: lib/SVK/Command.pod:472
msgid "checkout --relocate DEPOTPATH|PATH PATH"
msgstr ""
#: lib/SVK/Command.pod:473
msgid "checkout DEPOTPATH [PATH]"
msgstr ""
#: lib/SVK/Command.pod:474
msgid "cleanup - Remove stalled locks"
msgstr ""
lib/SVK/I18N/i_default.po view on Meta::CPAN
#: lib/SVK/Command.pod:491
msgid "depotmap --detach [DEPOTNAME | PATH]"
msgstr ""
#: lib/SVK/Command.pod:492
msgid "depotmap --list"
msgstr ""
#: lib/SVK/Command.pod:493
msgid "depotmap --relocate [DEPOTNAME | PATH] PATH"
msgstr ""
#: lib/SVK/Command.pod:494
msgid "depotmap DEPOTNAME /path/to/repository"
msgstr ""
#: lib/SVK/Command.pod:495
msgid "depotmap [OPTIONS]"
msgstr ""
lib/SVK/I18N/i_default.po view on Meta::CPAN
#: lib/SVK/Command.pod:549
msgid "mirror --list [DEPOTNAME...]"
msgstr ""
#: lib/SVK/Command.pod:550
msgid "mirror --recover DEPOTPATH"
msgstr ""
#: lib/SVK/Command.pod:551
msgid "mirror --relocate DEPOTPATH [http|svn]://host/path "
msgstr ""
#: lib/SVK/Command.pod:552
msgid "mirror --upgrade //"
msgstr ""
#: lib/SVK/Command.pod:553
msgid "mirror --upgrade /DEPOTNAME/"
msgstr ""
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
msgstr ""
" å¨ååºæ´æ°çé¡¹ç®æ¶ï¼æ¯åå¼å¤´ä¼ä»¥ä¸ä¸ªå符表示éåçæ´å¨ãå符çæä¹å¦ä¸ï¼"
#: lib/SVK/Command.pod:49
msgid " For example, here's the way to display the info of a checkout path:"
msgstr " 䏾便¥è¯´ï¼è¿æ ·ä¼æ¾ç¤ºååºè·¯å¾çä¿¡æ¯ï¼"
#: lib/SVK/Command.pod:51
msgid ""
" For information about how to change the mirrored location of a remote\n"
" repository, please see the --relocate option to svk mirror."
msgstr ""
#: lib/SVK/Command.pod:52
msgid " Here is an example for the value of the property:"
msgstr ""
#: lib/SVK/Command.pod:55
msgid ""
" If both --sync and --merge are specified, like in svk up -sm, it will\n"
" first synchronize the mirrored copy source path, and then smerge from\n"
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
#: lib/SVK/Command.pod:272
msgid "--purge: detach checkout directories which no longer exist"
msgstr ""
#: lib/SVK/Command.pod:273
msgid "--recover: recover the state of a mirror path"
msgstr "--recover: ä¿®å¤æ åè·¯å¾çç¶æ"
#: lib/SVK/Command.pod:274
msgid "--relocate: change the upstream URI for the mirrored depotpath"
msgstr "--relocate: å°æ åçæ¡£æ¡åºè·¯å¾æåå¦ä¸ä¸ªç½å"
#: lib/SVK/Command.pod:275
msgid "--relocate: relocate the checkout to another path"
msgstr "--relocate: å°ååºè·¯å¾æåå¦ä¸ä¸ªè·¯å¾"
#: lib/SVK/Command.pod:276
msgid "--relocate: relocate the depot to another path"
msgstr "--relocate: å°æ¡£æ¡åºæåå¦ä¸ä¸ªè·¯å¾"
#: lib/SVK/Command.pod:277
msgid "--remoterev: display remote revision numbers (on mirrors only)"
msgstr "--remoterev: å¨å并纪å½éï¼ä½¿ç¨è¿ç¨çæ´å¨ç¼å·ï¼ä»
éç¨äºæ åè·¯å¾ï¼"
#: lib/SVK/Command.pod:278
msgid "--remoterev: use remote revision numbers in merge log"
msgstr "--remoterev: å¨å并纪å½éï¼ä½¿ç¨è¿ç¨çæ´å¨ç¼å·"
#: lib/SVK/Command/Update.pm:87
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
#: lib/SVK/Command/Merge.pm:86
msgid "Can't merge across depots.\n"
msgstr "æ æ³è·¨æ¡£æ¡åºè¿è¡åå¹¶ã\n"
#: lib/SVK/Command/Merge.pm:159
msgid "Can't merge with specified revisions with smart merge.\n"
msgstr ""
#. ($self->source_path, $source_path)
#: lib/SVK/Mirror/Backend/SVNRa.pm:241
msgid "Can't relocate: mirror subdirectory changed from %1 to %2.\n"
msgstr "æ æ³éæ°æåï¼æ åè·¯å¾å·²ä» %1 æ¹ä¸º %2ã\n"
#: lib/SVK/Command/Propset.pm:166
msgid "Can't set svn:eol-style on depotpath.\n"
msgstr "æ æ³è®¾å®æ¡£æ¡åºè·¯å¾ç svn:eol-style 屿§ã\n"
#: lib/SVK/Command/Commit.pm:115
msgid "Can't use -F with -m.\n"
msgstr "æ æ³åæ¶æå® -F å -mã\n"
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
msgid "Changed paths:\n"
msgstr "已修æ¹è·¯å¾ï¼\n"
#. ($m->url)
#: lib/SVK/Command/Commit.pm:241
msgid "Checking locally against mirror source %1."
msgstr "æ£å¨æ¬å°ç«¯æ£æ¥æ åæ¥æº %1ã"
#. ($path, $target)
#: lib/SVK/Command/Checkout.pm:277
msgid "Checkout '%1' relocated to '%2'.\n"
msgstr "ååºè·¯å¾â%1âå·²æ¹ä¸ºæåâ%2âã\n"
#. ($target->copath)
#: lib/SVK/Command/Info.pm:95
msgid "Checkout Path: %1\n"
msgstr "ååºè·¯å¾ï¼%1\n"
#: lib/SVK/Command.pod:363
msgid "Checkout Path: /Users/gugod/dev/svk"
msgstr "ååºè·¯å¾ï¼/Users/gugod/dev/svk"
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
msgid "Depot '%1' detached.\n"
msgstr "æ¡£æ¡åºâ%1âå·²æåè§£é¤ã\n"
#. ($depot)
#: lib/SVK/Command/Depotmap.pm:143 lib/SVK/Command/Depotmap.pm:159
msgid "Depot '%1' does not exist in the depot map.\n"
msgstr "æ¡£æ¡åºâ%1âä¸åå¨äºå¯¹æ 表ä¸ã\n"
#. ($depot, $path)
#: lib/SVK/Command/Depotmap.pm:148
msgid "Depot '%1' relocated to '%2'.\n"
msgstr "æ¡£æ¡åºâ%1âå·²æ¹ä¸ºæåâ%2âã\n"
#. ($target_root->depotname, $rev)
#: lib/SVK/Command/Describe.pm:91
msgid "Depot /%1/ has no revision %2\n"
msgstr "æ¡£æ¡åº /%1/ 没æç¼å·ä¸º %2 çæ´å¨\n"
#. ($depot)
#: lib/SVK/Command/Mirror.pm:194
msgid "Depot /%1/ not loadable.\n"
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
msgid "Mirror initialized. Run svk sync %1 to start mirroring.\n"
msgstr ""
#. ($target->depotpath)
#: lib/SVK/Command/Mirror.pm:141
msgid "Mirror path '%1' detached.\n"
msgstr "æåè§£é¤è·¯å¾â%1âçæ åç¶æã\n"
#. ($mirror->url)
#: lib/SVK/Mirror/Backend/SVNRa.pm:258
msgid "Mirror relocated to %1"
msgstr "æ å已鿰å®ä½è³ %1"
#: lib/SVK/Command/Mirror.pm:123
msgid "Mirror relocated.\n"
msgstr ""
#: lib/SVK/Mirror/Backend/SVNRa.pm:233
msgid "Mirror source UUIDs differ.\n"
msgstr ""
#: lib/SVK/Command/Mirror.pm:297
msgid "Mirror state successfully recovered.\n"
msgstr "æåä¿®å¤è·¯å¾çæ åç¶æã\n"
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
#: lib/SVK/Command.pod:470
msgid "checkout --list"
msgstr "checkout --list"
#: lib/SVK/Command.pod:471
msgid "checkout --purge"
msgstr "checkout --purge"
#: lib/SVK/Command.pod:472
msgid "checkout --relocate DEPOTPATH|PATH PATH"
msgstr "checkout --relocate æ¡£æ¡åºè·¯å¾|è·¯å¾ è·¯å¾"
#: lib/SVK/Command.pod:473
msgid "checkout DEPOTPATH [PATH]"
msgstr "checkout æ¡£æ¡åºè·¯å¾ [è·¯å¾]"
#: lib/SVK/Command.pod:474
msgid "cleanup - Remove stalled locks"
msgstr "cleanup - ç§»é¤å¡ä½çéå®"
#: lib/SVK/Command.pod:475
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
#: lib/SVK/Command.pod:491
msgid "depotmap --detach [DEPOTNAME | PATH]"
msgstr "depotmap --detach [æ¡£æ¡åºåç§° | è·¯å¾]"
#: lib/SVK/Command.pod:492
msgid "depotmap --list"
msgstr "depotmap --list"
#: lib/SVK/Command.pod:493
msgid "depotmap --relocate [DEPOTNAME | PATH] PATH"
msgstr "depotmap --relocate [æ¡£æ¡åºåç§° | è·¯å¾] è·¯å¾"
#: lib/SVK/Command.pod:494
msgid "depotmap DEPOTNAME /path/to/repository"
msgstr "depotmap æ¡£æ¡åºåç§° /ç£çä¸ç/æ¡£æ¡åº/è·¯å¾"
#: lib/SVK/Command.pod:495
msgid "depotmap [OPTIONS]"
msgstr "depotmap [é项]"
#: lib/SVK/Command.pod:496
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
#: lib/SVK/Command.pod:549
msgid "mirror --list [DEPOTNAME...]"
msgstr "mirror --list [æ¡£æ¡åºåç§°...]"
#: lib/SVK/Command.pod:550
msgid "mirror --recover DEPOTPATH"
msgstr "mirror --recover æ¡£æ¡åºè·¯å¾"
#: lib/SVK/Command.pod:551
msgid "mirror --relocate DEPOTPATH [http|svn]://host/path "
msgstr "mirror --relocate æ¡£æ¡åºè·¯å¾ [http|svn]://æå¡å¨/è·¯å¾"
#: lib/SVK/Command.pod:552
msgid "mirror --upgrade //"
msgstr "mirror --upgrade //"
#: lib/SVK/Command.pod:553
msgid "mirror --upgrade /DEPOTNAME/"
msgstr "mirror --upgrade /æ¡£æ¡åºåç§°/"
#: lib/SVK/Command.pod:554
lib/SVK/I18N/zh_cn.po view on Meta::CPAN
#~ msgid "%1 is missing.\n"
#~ msgstr "æ¾ä¸å° %1ã\n"
#~ msgid "%1 is modified, use 'svk revert' first.\n"
#~ msgstr "%1 å·²æç¨ï¼è¯·ç¨âsvk revertâ"
#~ msgid "%1 is scheduled, use 'svk revert'.\n"
#~ msgstr "%1 å·²æç¨ï¼è¯·ç¨âsvk revertâ"
#~ msgid "--relocate: relocate the mirror to another URI"
#~ msgstr "--relocate: å°æ åè·¯å¾æåå¦ä¸ä¸ªç½å"
#~ msgid "-P [--patch] path: instead of commit, save this change as a patch"
#~ msgstr "-P [--patch] arg: å°æ´å¨å¨å为补ç¼ï¼ä½ä¸é交æ´å¨"
#~ msgid "-b [--base] number: use revision ARG as the merge point"
#~ msgstr "-b [--base] arg: ä½¿ç¨æå®çæ´å¨å½ä½åå¹¶ç¹"
#~ msgid ""
#~ "-r [--revision] number: act on revision ARG instead of the head revision"
#~ msgstr "-r [--revision] arg: æå®è¦å¤ççæ´å¨ç¼å·ï¼é¢è®¾ä¸ºææ°çæ¬"
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
msgstr ""
" å¨ååºæ´æ°çé
ç®æï¼æ¯åéé æä»¥ä¸åå符表示æ¡åçæ´åãå符çæç¾©å¦ä¸ï¼"
#: lib/SVK/Command.pod:49
msgid " For example, here's the way to display the info of a checkout path:"
msgstr " èä¾ä¾èªªï¼é樣æé¡¯ç¤ºååºè·¯å¾çè³è¨ï¼"
#: lib/SVK/Command.pod:51
msgid ""
" For information about how to change the mirrored location of a remote\n"
" repository, please see the --relocate option to svk mirror."
msgstr ""
#: lib/SVK/Command.pod:52
msgid " Here is an example for the value of the property:"
msgstr ""
#: lib/SVK/Command.pod:55
msgid ""
" If both --sync and --merge are specified, like in svk up -sm, it will\n"
" first synchronize the mirrored copy source path, and then smerge from\n"
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
#: lib/SVK/Command.pod:272
msgid "--purge: detach checkout directories which no longer exist"
msgstr ""
#: lib/SVK/Command.pod:273
msgid "--recover: recover the state of a mirror path"
msgstr "--recover: 修復æ å°è·¯å¾ççæ
"
#: lib/SVK/Command.pod:274
msgid "--relocate: change the upstream URI for the mirrored depotpath"
msgstr "--relocate: å°æ å°çæªæ¡åº«è·¯å¾æåå¦ä¸åç¶²å"
#: lib/SVK/Command.pod:275
msgid "--relocate: relocate the checkout to another path"
msgstr "--relocate: å°ååºè·¯å¾æåå¦ä¸åè·¯å¾"
#: lib/SVK/Command.pod:276
msgid "--relocate: relocate the depot to another path"
msgstr "--relocate: å°æªæ¡åº«æåå¦ä¸åè·¯å¾"
#: lib/SVK/Command.pod:277
msgid "--remoterev: display remote revision numbers (on mirrors only)"
msgstr "--remoterev: å¨åä½µç´é裡ï¼ä½¿ç¨é ç«¯çæ´åç·¨èï¼å
é©ç¨æ¼æ å°è·¯å¾ï¼"
#: lib/SVK/Command.pod:278
msgid "--remoterev: use remote revision numbers in merge log"
msgstr "--remoterev: å¨åä½µç´é裡ï¼ä½¿ç¨é ç«¯çæ´åç·¨è"
#: lib/SVK/Command/Update.pm:87
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
#: lib/SVK/Command/Merge.pm:86
msgid "Can't merge across depots.\n"
msgstr "ç¡æ³è·¨æªæ¡åº«é²è¡åä½µã\n"
#: lib/SVK/Command/Merge.pm:159
msgid "Can't merge with specified revisions with smart merge.\n"
msgstr ""
#. ($self->source_path, $source_path)
#: lib/SVK/Mirror/Backend/SVNRa.pm:241
msgid "Can't relocate: mirror subdirectory changed from %1 to %2.\n"
msgstr "ç¡æ³éæ°æåï¼æ å°è·¯å¾å·²å¾ %1 æ¹çº %2ã\n"
#: lib/SVK/Command/Propset.pm:166
msgid "Can't set svn:eol-style on depotpath.\n"
msgstr "ç¡æ³è¨å®æªæ¡åº«è·¯å¾ç svn:eol-style 屬æ§ã\n"
#: lib/SVK/Command/Commit.pm:115
msgid "Can't use -F with -m.\n"
msgstr "ç¡æ³åææå® -F å -mã\n"
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
msgid "Changed paths:\n"
msgstr "已修æ¹è·¯å¾ï¼\n"
#. ($m->url)
#: lib/SVK/Command/Commit.pm:241
msgid "Checking locally against mirror source %1."
msgstr "æ£å¨æ¬å°ç«¯æª¢æ¥æ å°ä¾æº %1ã"
#. ($path, $target)
#: lib/SVK/Command/Checkout.pm:277
msgid "Checkout '%1' relocated to '%2'.\n"
msgstr "ååºè·¯å¾ã%1ãå·²æ¹çºæåã%2ãã\n"
#. ($target->copath)
#: lib/SVK/Command/Info.pm:95
msgid "Checkout Path: %1\n"
msgstr "ååºè·¯å¾ï¼%1\n"
#: lib/SVK/Command.pod:363
msgid "Checkout Path: /Users/gugod/dev/svk"
msgstr "ååºè·¯å¾ï¼/Users/gugod/dev/svk"
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
msgid "Depot '%1' detached.\n"
msgstr "æªæ¡åº«ã%1ãå·²æåè§£é¤ã\n"
#. ($depot)
#: lib/SVK/Command/Depotmap.pm:143 lib/SVK/Command/Depotmap.pm:159
msgid "Depot '%1' does not exist in the depot map.\n"
msgstr "æªæ¡åº«ã%1ãä¸å卿¼å°æ 表ä¸ã\n"
#. ($depot, $path)
#: lib/SVK/Command/Depotmap.pm:148
msgid "Depot '%1' relocated to '%2'.\n"
msgstr "æªæ¡åº«ã%1ãå·²æ¹çºæåã%2ãã\n"
#. ($target_root->depotname, $rev)
#: lib/SVK/Command/Describe.pm:91
msgid "Depot /%1/ has no revision %2\n"
msgstr "æªæ¡åº« /%1/ æ²æç·¨èçº %2 çæ´å\n"
#. ($depot)
#: lib/SVK/Command/Mirror.pm:194
msgid "Depot /%1/ not loadable.\n"
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
msgid "Mirror initialized. Run svk sync %1 to start mirroring.\n"
msgstr ""
#. ($target->depotpath)
#: lib/SVK/Command/Mirror.pm:141
msgid "Mirror path '%1' detached.\n"
msgstr "æåè§£é¤è·¯å¾ã%1ãçæ å°çæ
ã\n"
#. ($mirror->url)
#: lib/SVK/Mirror/Backend/SVNRa.pm:258
msgid "Mirror relocated to %1"
msgstr "æ å°å·²éæ°å®ä½è³ %1"
#: lib/SVK/Command/Mirror.pm:123
msgid "Mirror relocated.\n"
msgstr ""
#: lib/SVK/Mirror/Backend/SVNRa.pm:233
msgid "Mirror source UUIDs differ.\n"
msgstr ""
#: lib/SVK/Command/Mirror.pm:297
msgid "Mirror state successfully recovered.\n"
msgstr "æå修復路å¾çæ å°çæ
ã\n"
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
#: lib/SVK/Command.pod:470
msgid "checkout --list"
msgstr "checkout --list"
#: lib/SVK/Command.pod:471
msgid "checkout --purge"
msgstr "checkout --purge"
#: lib/SVK/Command.pod:472
msgid "checkout --relocate DEPOTPATH|PATH PATH"
msgstr "checkout --relocate æªæ¡åº«è·¯å¾|è·¯å¾ è·¯å¾"
#: lib/SVK/Command.pod:473
msgid "checkout DEPOTPATH [PATH]"
msgstr "checkout æªæ¡åº«è·¯å¾ [è·¯å¾]"
#: lib/SVK/Command.pod:474
msgid "cleanup - Remove stalled locks"
msgstr "cleanup - ç§»é¤å¡ä½çéå®"
#: lib/SVK/Command.pod:475
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
#: lib/SVK/Command.pod:491
msgid "depotmap --detach [DEPOTNAME | PATH]"
msgstr "depotmap --detach [æªæ¡åº«å稱 | è·¯å¾]"
#: lib/SVK/Command.pod:492
msgid "depotmap --list"
msgstr "depotmap --list"
#: lib/SVK/Command.pod:493
msgid "depotmap --relocate [DEPOTNAME | PATH] PATH"
msgstr "depotmap --relocate [æªæ¡åº«å稱 | è·¯å¾] è·¯å¾"
#: lib/SVK/Command.pod:494
msgid "depotmap DEPOTNAME /path/to/repository"
msgstr "depotmap æªæ¡åº«å稱 /ç£ç¢ä¸ç/æªæ¡åº«/è·¯å¾"
#: lib/SVK/Command.pod:495
msgid "depotmap [OPTIONS]"
msgstr "depotmap [é¸é
]"
#: lib/SVK/Command.pod:496
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
#: lib/SVK/Command.pod:549
msgid "mirror --list [DEPOTNAME...]"
msgstr "mirror --list [æªæ¡åº«å稱...]"
#: lib/SVK/Command.pod:550
msgid "mirror --recover DEPOTPATH"
msgstr "mirror --recover æªæ¡åº«è·¯å¾"
#: lib/SVK/Command.pod:551
msgid "mirror --relocate DEPOTPATH [http|svn]://host/path "
msgstr "mirror --relocate æªæ¡åº«è·¯å¾ [http|svn]://伺æå¨/è·¯å¾"
#: lib/SVK/Command.pod:552
msgid "mirror --upgrade //"
msgstr "mirror --upgrade //"
#: lib/SVK/Command.pod:553
msgid "mirror --upgrade /DEPOTNAME/"
msgstr "mirror --upgrade /æªæ¡åº«å稱/"
#: lib/SVK/Command.pod:554
lib/SVK/I18N/zh_tw.po view on Meta::CPAN
#~ msgid "%1 is missing.\n"
#~ msgstr "æ¾ä¸å° %1ã\n"
#~ msgid "%1 is modified, use 'svk revert' first.\n"
#~ msgstr "%1 å·²æç¨ï¼è«ç¨ãsvk revertã"
#~ msgid "%1 is scheduled, use 'svk revert'.\n"
#~ msgstr "%1 å·²æç¨ï¼è«ç¨ãsvk revertã"
#~ msgid "--relocate: relocate the mirror to another URI"
#~ msgstr "--relocate: å°æ å°è·¯å¾æåå¦ä¸åç¶²å"
#~ msgid "-P [--patch] path: instead of commit, save this change as a patch"
#~ msgstr "-P [--patch] arg: å°æ´åå²åçºè£ç¶´ï¼ä½ä¸é交æ´å"
#~ msgid "-b [--base] number: use revision ARG as the merge point"
#~ msgstr "-b [--base] arg: ä½¿ç¨æå®çæ´åç¶ä½åä½µé»"
#~ msgid ""
#~ "-r [--revision] number: act on revision ARG instead of the head revision"
#~ msgstr "-r [--revision] arg: æå®è¦èççæ´åç·¨èï¼é è¨çºææ°çæ¬"
lib/SVK/Mirror.pm view on Meta::CPAN
open my $fh, '<', \$buf;
my $feedback = '';
open my $fstream, '>', \$feedback;
my $ret = SVN::Repos::load_fs2( $self->repos, $fh, $fstream, $SVN::Repos::load_uuid_default, undef, 0, 0, undef, undef, $pool );
# (repos,dumpstream,feedback_stream,uuid_action,parent_dir,use_pre_commit_hook,use_post_commit_hook,cancel_func,cancel_baton,pool);
# XXX: display $feedback if we are in verbose / debug mode.
# and provide progress feedback in caller
return $ret;
}
=item relocate($newurl)
=item with_lock($code)
=cut
sub with_lock {
my ( $self, $lock, $code ) = @_;
$self->lock;
eval { $code->() };
lib/SVK/Mirror.pm view on Meta::CPAN
=cut
sub get_svkpath {
my ($self, $path) = @_;
return SVK::Path->real_new( { depot => $self->depot, path => $path || $self->path } )
->refresh_revision;
}
for my $delegate
qw( find_rev_from_changeset find_changeset sync_changeset traverse_new_changesets mirror_changesets get_commit_editor refresh change_rev_prop fromrev source_path relocate )
{
no strict 'refs';
*{$delegate} = sub {
my $self = shift;
Carp::cluck $delegate unless $self->_backend;
my $method = $self->_backend->can($delegate);
unshift @_, $self->_backend;
goto $method;
};
}
lib/SVK/Mirror/Backend/SVNRa.pm view on Meta::CPAN
next if $self->source_root ne $mirror->_backend->source_root;
# XXX: check overlap with svk::mirror objects.
my ($me, $other) = map { Path::Class::Dir->new_foreign('Unix', $_) }
$self->source_path, $mirror->_backend->source_path;
die "Mirroring overlapping paths not supported\n"
if $me->subsumes($other) || $other->subsumes($me);
}
}
=item relocate($newurl)
=cut
sub relocate {
my ($self, $source, $options) = @_;
$source =~ s{/+$}{}g;
my $ra = $self->_new_ra(url => $source);
my $ra_uuid = $ra->get_uuid;
my $mirror = $self->mirror;
die loc("Mirror source UUIDs differ.\n")
unless $ra_uuid eq $mirror->server_uuid;
my $source_root = $ra->get_repos_root;
my $source_path = $source;
die "source url not under source root"
if substr($source_path, 0, length($source_root), '') ne $source_root;
die loc( "Can't relocate: mirror subdirectory changed from %1 to %2.\n",
$self->source_path, $source_path )
unless $self->source_path eq $source_path;
$self->source_root( $ra->get_repos_root );
$mirror->url($source);
$self->_do_relocate;
}
sub _do_relocate {
my ($self) = @_;
my $mirror = $self->mirror;
my $t = $mirror->get_svkpath;
my ( $editor, %opt ) = $t->get_dynamic_editor(
ignore_mirror => 1,
message => loc( 'Mirror relocated to %1', $mirror->url ),
author => $ENV{USER},
);
$opt{txn}->change_prop( 'svm:headrev', join(':', $mirror->server_uuid, $self->fromrev ) );
$opt{txn}->change_prop( 'svm:incomplete', '*');
$editor->change_dir_prop( 0, 'svm:source', $self->source_root.'!'.$self->source_path );
$editor->adjust;
$editor->close_edit;
}
lib/SVK/Mirror/Backend/SVNSync.pm view on Meta::CPAN
die loc( "%1 is already a mirror of %2.\n",
"/" . $mirror->depot->depotname . "/", $from );
}
$fs->change_rev_prop( 0, 'svn:svnsync:from-url', $mirror->url );
$fs->change_rev_prop( 0, 'svn:svnsync:from-uuid', $mirror->server_uuid );
# $fs->change_rev_prop(0, 'svn:svnsync:last-merged-rev', 0);
return $self;
}
sub _do_relocate {
my ($self) = @_;
$self->mirror->depot->repos->fs->change_rev_prop( 0, 'svn:svnsync:from-url', $self->mirror->url );
}
sub find_rev_from_changeset { $_[1] }
sub find_changeset { $_[1] }
sub _revmap_prop { }
t/01depotmap.t view on Meta::CPAN
is_output ($svk, 'depotmap', ['--detach', $repospath],
["Depot '' detached."], 'depotpath - detach with repospath');
is_output_like ($svk, 'depotmap', ['--detach', $repospath],
qr/Depot '.+' does not exist in the depot map/,
'depotpath - detach with repospath again');
is_output ($svk, 'depotmap', ['//', $repospath],
['New depot map saved.'], 'depotpath - add again');
is_output ($svk, 'depotmap', ['//', $repospath],
["Depot '' already exists; use 'svk depotmap --detach' to remove it first."], 'depotpath - add again');
is_output ($svk, 'depotmap', ['--relocate', '//'],
["Need to specify a path name for depot."]);
$answer = 'n';
is_output ($svk, 'depotmap', ['--relocate', '//', "$repospath.new"],
[__("Depot '' relocated to '$repospath.new'.")], 'depotpath - relocate');
ok (!-e "$repospath.new", '... did not create a new repospath');
is_output ($svk, 'depotmap', ['--relocate', '//', $repospath],
[__("Depot '' relocated to '$repospath'.")], 'depotpath - relocate back');
is_output ($svk, 'depotmap', ['--relocate', $repospath => "$repospath.new"],
[__("Depot '' relocated to '$repospath.new'.")], 'depotpath - relocate from path');
ok (-e "$repospath.new", '... did create a new repospath');
is_output ($svk, 'depotmap', ['--relocate', "$repospath.new" => $repospath],
[__("Depot '' relocated to '$repospath'.")], 'depotpath - relocate back');
is_output ($svk, 'depotmap', ['--relocate', $repospath => catdir($repospath, 'db')], [
__("Cannot rename $repospath to $repospath/db; please move it manually."),
__("Depot '' relocated to '$repospath/db'."),
], 'depotpath - relocate impossibly');
rmtree [$repospath];
rmtree ["$repospath.new"];
t/11checkout.t view on Meta::CPAN
]);
is_output ($svk, 'checkout', ['--detach', __("$corpath/boo")], [
__("Checkout path '$corpath/boo' detached."),
]);
is_output ($svk, 'checkout', ['--detach', __("$corpath/boo")], [
__("'$corpath/boo' is not a checkout path."),
]);
is_output ($svk, 'checkout', ['--relocate', "//V-3.1", $corpath], [
"'//V-3.1' is not a checkout path."
]);
is_output ($svk, 'checkout', ['--relocate', "//V-3.1/A/Q", $corpath], [
"'//V-3.1/A/Q' maps to multiple checkout paths."
]);
is_output ($svk, 'checkout', ['--relocate', "//V-3.1-non", __("$corpath/co-root-a")], [
__("Overlapping checkout path is not supported ($corpath/co-root-a); use 'svk checkout --detach' to remove it first.")
]);
chdir ('co-root-a') or die $!;
is_output ($svk, 'checkout', ['--relocate', "//V-3.1"],
["Do you mean svk switch //V-3.1?"],
);
chdir ('..');
is_output($svk, 'update', [-r3 =>'co-root-a'],
['Syncing //V/A(/V/A) in '.__("$corpath/co-root-a").' to 3.',
__('A co-root-a/P'),
__('A co-root-a/P/pe')]);
is_output($svk, 'co', ['//V/A' =>'co-root-a'],
['Syncing //V/A(/V/A) in '.__("$corpath/co-root-a").' to 6.',
__('D co-root-a/P')]);
t/11checkout.t view on Meta::CPAN
SKIP: {
chmod (0555, '.');
skip 'no working chmod', 1 if -w '.' || chmod_probably_useless();
is_output ($svk, 'checkout', ['//V/A', 'co-root-a'],
["Syncing //V/A(/V/A) in ".__"$corpath/co-root-a to 6.",
"Can't create directory co-root-a for checkout: Permission denied."]);
chmod (0755, '.');
}
is_output ($svk, 'checkout', ['--relocate', "//V-3.1-non", __("$corpath/foo")], [
"Checkout '//V-3.1-non' ".__("relocated to '$corpath/foo'.")
]);
is_output ($svk, 'checkout', ['--relocate', "//V-3.1-non", __("$corpath/bar")], [
"Checkout '//V-3.1-non' ".__("relocated to '$corpath/bar'.")
]);
ok (!-e "$corpath/bar", '... did not create a new copath');
is_output ($svk, 'checkout', ['--relocate', __("$corpath/just-q"), __("$corpath/baz/boo")], [
__("Checkout '$corpath/just-q' relocated to '$corpath/baz/boo'.")
]);
ok (-e "$corpath/baz", '... did create a new copath');
is_output ($svk, 'checkout', ['--relocate', __("$corpath/just-q"), __("$corpath/baz/boo")], [
__("'$corpath/just-q' is not a checkout path.")
]);
is_output ($svk, 'checkout', ['--relocate', __("$corpath/baz/boo"), __("$corpath/baz")], [
__("Cannot rename $corpath/baz/boo to $corpath/baz; please move it manually."),
__("Checkout '$corpath/baz/boo' relocated to '$corpath/baz'."),
]);
$svk->checkout (-r5 => '//V-3.1', "3.1");
SKIP: {
chmod 0500, "3.1/B";
skip 'no working chmod', 4 if -w "3.1/B" || chmod_probably_useless();
is_sorted_output ($svk, 'up', ["3.1"],
["Syncing //V-3.1(/V-3.1) in ".__"$corpath/3.1 to 6.",
__('D 3.1/A/P'),
t/11checkout.t view on Meta::CPAN
chdir("$corpath/co-root-deep/there");
$svk->mkdir("newdir");
is_output($svk, 'st', [], ['A newdir']);
chdir($corpath);
rename("$corpath/co-root-deep/there", "$corpath/tmp");
rmtree ["$corpath/co-root-deep"] or die $!;
rename("$corpath/tmp", "$corpath/co-root-deep");
is_output ($svk, 'checkout', ['--relocate', __("$corpath/co-root-deep/there"), __("$corpath/co-root-deep")], [
__("Checkout '$corpath/co-root-deep/there' relocated to '$corpath/co-root-deep'."),
]);
chdir("$corpath/co-root-deep");
is_output($svk, 'st', [], ['A newdir']);
'Commit into mirrored path: merging back directly.',
"Merging back to mirror source $uri/A.",
qr'Commit message saved in (.*)\.',
qr"RA layer request failed: OPTIONS.*/svn/A.*",
]);
($filename) = $output =~ m/saved in (.*)\./s;
is_file_content ($filename, "from editor\n");
$uri = "file://$srepospath/A";
is_output ($svk, 'mi', ['--relocate', $uri, '//remote'],
['Mirror relocated.']);
is_output ($svk, 'commit', [-m => 'go'],
['Commit into mirrored path: merging back directly.',
"Merging back to mirror source $uri.",
'Merge back committed as revision 6.',
'Syncing '.$uri,
'Retrieving log information from 5 to 6',
'Committed revision 10 from revision 5.',
'Committed revision 11 from revision 6.']);
t/mirror/relocate.t view on Meta::CPAN
my ($srepospath2) = $xd->find_repos('/test2/A', 1);
rmtree [$srepospath2];
symlink($srepospath, $srepospath2);
my $uri = uri($srepospath.($spath eq '/' ? '' : $spath));
my $uri2 = uri($srepospath);
is_output($svk, mirror => ['//m', $uri],
["Mirror initialized. Run svk sync //m to start mirroring."]);
is_output($svk, 'mirror', ['--relocate', '//m', "$uri2/B"],
["Can't relocate: mirror subdirectory changed from /A to /B."]);
is_output($svk, 'mirror', ['--relocate', '//m', "$uri2/A"],
['Mirror relocated.']);
is_output($svk, 'mirror', ['--relocate','//bogus_mirror', "$uri2/B"],
['//bogus_mirror is not a mirrored path.']);
is_output($svk, 'mirror', ['--relocate','//m/bogus_mirror', "$uri2/B"],
['//m/bogus_mirror is inside a mirrored path.']);
t/mirror/sync-rebase.t view on Meta::CPAN
my ($xd, $svk) = build_test('test');
our $output;
$svk->mkdir(-pm => 'init', '/test/foo/proj/trunk');
$svk->mkdir(-pm => 'init', '/test/foo/proj/branches');
my $tree = create_basic_tree ($xd, '/test/foo/proj/trunk');
$svk->cp('-m' => 'branch', '/test/foo/proj/trunk' => '/test/foo/proj/branches/branchA');
$svk->mv(-m => 'relocate proj base', '/test/foo/proj' => '/test/proj');
$svk->cp(-m => 'branch2', '/test/proj/trunk' => '/test/proj/branches/branchB');
my ($srepospath, $spath, $srepos) = $xd->find_repos ('/test/proj', 1);
my $uri = uri($srepospath.($spath eq '/' ? '' : $spath));
$svk->mi('//mirror/proj', $uri);
is_output($svk, 'sync', ['--follow-anchor-copy','//mirror/proj'],
t/mirror/sync-replicate.t view on Meta::CPAN
"Merging back to mirror source $uri.",
'Merge back committed as revision 8.',
"Syncing $uri",
'Retrieving log information from 8 to 8',
'Committed revision 8 from revision 8.']);
SKIP: {
skip 'No symlinks on win32', 2 if $^O eq 'MSWin32';
symlink($srepospath, $rorpath);
is_output($svk, 'mi', ['--relocate', '//', uri($rorpath)],
['Mirror relocated.']);
is_output($svk, 'sync', ['//'],
['Syncing '.uri($rorpath)]);
}