]>
git.madduck.net Git - code/myrepos.git/commitdiff
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:
summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (parent:
abf6cf5 )
also improve docs
Architecture: all
Section: utils
Depends:
Architecture: all
Section: utils
Depends:
-Suggests: subversion, git-core, cvs
+Suggests: subversion, git-core, cvs, bzr
Description: a Multiple Repository management tool
The mr(1) command allows you to register a set of repositories in
a .mrconfig file, and then checkout, update, or perform other actions on
Description: a Multiple Repository management tool
The mr(1) command allows you to register a set of repositories in
a .mrconfig file, and then checkout, update, or perform other actions on
=head1 FILES
B<mr> is configured by .mrconfig files. It starts by reading the .mrconfig
=head1 FILES
B<mr> is configured by .mrconfig files. It starts by reading the .mrconfig
-file in your home directory. Each repository specified in a .mrconfig file
-can also have its own .mrconfig file in its root directory that can
-optionally be used as well. So you could have a ~/.mrconfig that registers a
-repository ~/src, that itself contains a ~/src/.mrconfig file, that in turn
-registers several additional repositories.
+file in your home directory, and this can in turn chain load .mrconfig files
+from repositories.
+
+Here is an example .mrconfig file:
+
+ [src]
+ checkout = svn co svn://svn.example.com/src/trunk src
+ chain = true
+
+ [src/linux-2.6]
+ checkout = git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
The .mrconfig file uses a variant of the INI file format. Lines starting with
"#" are comments. Lines ending with "\" are continued on to the next line.
The .mrconfig file uses a variant of the INI file format. Lines starting with
"#" are comments. Lines ending with "\" are continued on to the next line.
The "MR_REPO" environment variable is set to the path to the top of the
repository.
The "MR_REPO" environment variable is set to the path to the top of the
repository.
-There are three special parameters. If the "skip" parameter is set and
-its command returns nonzero, then B<mr> will skip acting on that repository.
+A few parameters have special meanings:
+
+=over 4
+
+=item skip
+
+If the "skip" parameter is set and its command returns nonzero, then B<mr>
+will skip acting on that repository.
+
+=item chain
+
If the "chain" parameter is set and its command returns nonzero, then B<mr>
will try to load a .mrconfig file from the root of the repository. (You
If the "chain" parameter is set and its command returns nonzero, then B<mr>
will try to load a .mrconfig file from the root of the repository. (You
-should avoid chaining from repositories with untrusted committers.) The
-"lib" parameter can specify some shell code that will be run before each
-command, this can be a useful way to define shell functions for other commands
-to use.
+should avoid chaining from repositories with untrusted committers.)
-For example:
-
- [src]
- checkout = svn co svn://svn.example.com/src/trunk src
- chain = true
- [src/linux-2.6]
- skip = small
- checkout = git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+The "lib" parameter can specify some shell code that will be run before each
+command, this can be a useful way to define shell functions for other commands
+to use.
- [default]
- lib = \
- small() {
- case "$(hostname)" in; \
- slug|snail); \
- return 0; ;; ; \
- esac; \
- return 1; \
- }
Getopt::Long::Configure("no_permute");
my $result=GetOptions(
Getopt::Long::Configure("no_permute");
my $result=GetOptions(
- "d=s" => sub { $directory=abs_path($_[1]) },
- "c=s" => \$config,
- "v" => \$verbose,
+ "d|directory =s" => sub { $directory=abs_path($_[1]) },
+ "c|config =s" => \$config,
+ "verbose " => \$verbose,
);
if (! $result || @ARGV < 1) {
die("Usage: mr [-d directory] action [params ...]\n".
);
if (! $result || @ARGV < 1) {
die("Usage: mr [-d directory] action [params ...]\n".
svn update "$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git pull origin master "$@"; \
svn update "$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git pull origin master "$@"; \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr merge "$@"; \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs update "$@"; \
else \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs update "$@"; \
else \
svn status "$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git status "$@" || true; \
svn status "$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git status "$@" || true; \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr status "$@"; \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs status "$@"; \
else \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs status "$@"; \
else \
svn commit "$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git commit -a "$@" && git push --all; \
svn commit "$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git commit -a "$@" && git push --all; \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr commit "$@" && bzr push; \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs commit "$@"; \
else \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs commit "$@"; \
else \
svn diff "$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git diff "$@"; \
svn diff "$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git diff "$@"; \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr diff "$@"; \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs diff "$@"; \
else \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs diff "$@"; \
else \
svn log"$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git log "$@"; \
svn log"$@"; \
elif [ -d "$MR_REPO"/.git ]; then \
git log "$@"; \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr log "$@"; \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs log "$@"; \
else \
elif [ -d "$MR_REPO"/CVS ]; then \
cvs log "$@"; \
else \