]>
git.madduck.net Git - code/myrepos.git/blobdiff - mr
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
mr - a Multiple Repository management tool
=head1 SYNOPSIS
mr - a Multiple Repository management tool
=head1 SYNOPSIS
B<mr> [options] checkout
B<mr> [options] update
B<mr> [options] checkout
B<mr> [options] update
The optional -m parameter allows specifying a commit message.
The optional -m parameter allows specifying a commit message.
+=item push
+
+Pushes committed local changes to the remote repository. A no-op for
+centralized revision control systems.
+
=item diff
Show a diff of uncommitted changes.
=item diff
Show a diff of uncommitted changes.
sub action { #{{{
my ($action, $dir, $topdir, $subdir) = @_;
sub action { #{{{
my ($action, $dir, $topdir, $subdir) = @_;
$ENV{MR_CONFIG}=$configfiles{$topdir};
my $lib=exists $config{$topdir}{$subdir}{lib} ?
$config{$topdir}{$subdir}{lib}."\n" : "";
$ENV{MR_CONFIG}=$configfiles{$topdir};
my $lib=exists $config{$topdir}{$subdir}{lib} ?
$config{$topdir}{$subdir}{lib}."\n" : "";
if (-e "$ENV{HOME}/.mrlog" && $action ne 'remember') {
# recreate original command line to
# remember, and avoid recursing
if (-e "$ENV{HOME}/.mrlog" && $action ne 'remember') {
# recreate original command line to
# remember, and avoid recursing
- @ARGV=('-n', $action, @ARGV);
+ my @orig=@ARGV;
+ @ARGV=('-n', $action, @orig);
action("remember", $dir, $topdir, $subdir);
action("remember", $dir, $topdir, $subdir);
if ($parameter eq "include") {
print "mr: including output of \"$value\"\n" if $verbose;
unshift @lines, `$value`;
if ($parameter eq "include") {
print "mr: including output of \"$value\"\n" if $verbose;
unshift @lines, `$value`;
+ if ($?) {
+ print STDERR "mr: include command exited nonzero ($?)\n";
+ }
hg_record = hg commit -m "$@"
darcs_record = darcs record -a -m "$@"
hg_record = hg commit -m "$@"
darcs_record = darcs record -a -m "$@"
+svn_push = :
+git_push = git push "$@"
+bzr_push = bzr push "$@"
+cvs_push = :
+hg_push = hg push "$@"
+darcs_push = darcs push -a "$@"
+
svn_diff = svn diff "$@"
git_diff = git diff "$@"
bzr_diff = bzr diff "$@"
svn_diff = svn diff "$@"
git_diff = git diff "$@"
bzr_diff = bzr diff "$@"
if [ -s ~/.mrlog ]; then
info "running offline commands"
mv -f ~/.mrlog ~/.mrlog.old
if [ -s ~/.mrlog ]; then
info "running offline commands"
mv -f ~/.mrlog ~/.mrlog.old
- if ! sh ~/.mrlog.old; then
- error "offline commands failed; left in ~/.mrlog.old"
+ if ! sh -e ~/.mrlog.old; then
+ error "offline command failed; left in ~/.mrlog.old"
fi
rm -f ~/.mrlog.old
else
info "no offline commands to run"
fi
offline =
fi
rm -f ~/.mrlog.old
else
info "no offline commands to run"
fi
offline =
touch ~/.mrlog
info "offline mode enabled"
remember =
touch ~/.mrlog
info "offline mode enabled"
remember =