NAME
rami - Automates merging/committing a single change to an arbitrary number of branches
SYNOPSIS
Try it from the command line, using this real demonstration repository. Merge revision 7 from the trunk to all the branches, as follows:
$ rami --load-repo-config-from-svn-url=https://github.com/DanTheDancer/demo-rami/trunk/rami-config
...
Checked out revision 8.
$ rami -c 7
...
Password for 'you': ***********
Committed revision 9
Of course, it won't work as well if you don't have permission to commit to that repository, which you probably don't. But let's look at what the commands do.
$ rami --load-repo-config-from-svn-url=https://github.com/DanTheDancer/demo-rami/trunk/rami-config
Configures Rami using the files at that URL. There is only one such file, named urls.csv
, which tells it the branches to which it should merge changes to the trunk.
$ rami -c 7
Tells Rami to merge revision 7. Rami figures out that revision 7 was made to the trunk, and that according to urls.csv
, changes to the trunk should go to three branches. So it commits the change to all three branches.
Note: if it encounters a merge conflict, Rami will exit with an error message.
FILES
Both configuration and repository working directories can be found in the ~/.rami
directory.
BUGS
When run from Cygwin, rami uses the Cygwin user's home directory, which is different from the Windows user's home directory. This means that rami on Cygwin and rami on Windows do not share the same configuration.
Rami keeps a local copy of all the branches, even when it is not running. (In other words, if you run Rami, you will have all the branches sitting on your hard drive at once.) This makes Rami run faster, but uses a lot of disk space.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc SVN::Rami
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
CPAN Ratings
Search CPAN
SEE ALSO
SVK::Merge
LICENSE AND COPYRIGHT
This software is copyright (c) 2023 by Dan Richter.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.