X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/476df25d8c4712ed1a859820375420e4107d641c..d80a044816be0037e3243bf4e4949461d73b1097:/mr?ds=inline diff --git a/mr b/mr index 556366c..bdc9ff6 100755 --- a/mr +++ b/mr @@ -16,6 +16,8 @@ B [options] commit [-m "message"] B [options] record [-m "message"] +B [options] fetch + B [options] push B [options] diff @@ -91,6 +93,12 @@ remote repository. Only supported for distributed version control systems. The optional -m parameter allows specifying a commit message. +=item fetch + +Fetches from each repository's remote repository, but does not +update the working copy. Only supported for some distributed version +control systems. + =item push Pushes committed local changes to the remote repository. A no-op for @@ -116,8 +124,10 @@ These commands are also available: =item bootstrap url [directory] -Causes mr to download the url, and use it as a .mrconfig file -to checkout the repositories listed in it, into the specified directory. +Causes mr to download the url, and use it as a .mrconfig file to checkout +the repositories listed in it, into the specified directory. + +To use scp to download, the url may have the form ssh://[user@]host:file The directory will be created if it does not exist. If no directory is specified, the current directory will be used. @@ -1661,11 +1671,18 @@ sub bootstrap { eval q{use File::Temp}; die $@ if $@; my $tmpconfig=File::Temp->new(); - my @curlargs = ("curl", "-A", "mr", "-L", "-s", $url, "-o", $tmpconfig); - push(@curlargs, "-k") if $insecure; - my $curlstatus = system(@curlargs); - die "mr bootstrap: invalid SSL certificate for $url (consider -k)\n" if $curlstatus >> 8 == 60; - die "mr bootstrap: download of $url failed\n" if $curlstatus != 0; + my @downloader; + if ($url =~ m!^ssh://(.*)!) { + @downloader = ("scp", $1, $tmpconfig); + } + else { + @downloader = ("curl", "-A", "mr", "-L", "-s", $url, "-o", $tmpconfig); + push(@downloader, "-k") if $insecure; + } + my $status = system(@downloader); + die "mr bootstrap: invalid SSL certificate for $url (consider -k)\n" + if $downloader[0] eq 'curl' && $status >> 8 == 60; + die "mr bootstrap: download of $url failed\n" if $status != 0; if (! -e $dir) { system("mkdir", "-p", $dir); @@ -1890,13 +1907,18 @@ bzr_update = else bzr merge --pull "$@" fi -cvs_update = cvs update "$@" +cvs_update = cvs -q update "$@" hg_update = hg pull "$@"; hg update "$@" darcs_update = darcs pull -a "$@" fossil_update = fossil pull "$@" vcsh_update = vcsh run "$MR_REPO" git pull "$@" veracity_update = vv pull "$@" && vv update "$@" +git_fetch = git fetch --all --prune --tags +git_svn_fetch = git svn fetch +darcs_fetch = darcs fetch +hg_fetch = hg pull + svn_status = svn status "$@" git_status = git status -s "$@" || true bzr_status = bzr status --short "$@" @@ -1904,7 +1926,7 @@ cvs_status = cvs status "$@" hg_status = hg status "$@" darcs_status = darcs whatsnew -ls "$@" || true fossil_status = fossil changes "$@" -vcsh_status = cd $(vcsh run "$MR_REPO" git config --get core.worktree); vcsh run "$MR_REPO" git status -s "$@" || true +vcsh_status = vcsh run "$MR_REPO" git -c status.relativePaths=false status -s "$@" || true veracity_status = vv status "$@" svn_commit = svn commit "$@" @@ -1948,7 +1970,7 @@ veracity_push = vv push "$@" svn_diff = svn diff "$@" git_diff = git diff "$@" bzr_diff = bzr diff "$@" -cvs_diff = cvs diff "$@" +cvs_diff = cvs -q diff "$@" hg_diff = hg diff "$@" darcs_diff = darcs diff -u "$@" fossil_diff = fossil diff "$@" @@ -1966,6 +1988,13 @@ fossil_log = fossil timeline "$@" vcsh_log = vcsh run "$MR_REPO" git log "$@" veracity_log = vv log "$@" +hg_grep = hg grep "$@" +cvs_grep = ack-grep "$@" +svn_grep = ack-grep "$@" +git_svn_grep = git grep "$@" +git_grep = git grep "$@" +bzr_grep = ack-grep "$@" + run = "$@" svn_register =