@Deprecated
public class MultiVersionControl
extends java.lang.Object
This program simplifies managing your checkouts/clones. You might want to update/pull all of them, or you might want to know whether any of them have uncommitted changes. When setting up a new account, you might want to clone or check them all out. This program does any of those tasks. In particular, it accepts these arguments:
clone -- Clone (check out) all repositories. checkout -- Same as clone pull -- Pull and update all clones. update -- Same as pull. status -- Show files that are changed but not committed, or committed but not pushed, or have shelved/stashed changes. list -- List the clones/checkouts that this program is aware of.(The
commit
action is not supported, because that is not something that should be done in
an automated way -- it needs a user-written commit message.)
You can specify the set of checkouts/clones for the program to manage, or it can search your directory structure to find all of your checkouts, or both. To list all un-committed changed files under your home directory:
java plume.MultiVersionControl status --search=trueCommand-line arguments
The command-line options are as follows:
$HOME/.mvc-checkouts
. [default
~/.mvc-checkouts]
[+]
. Directory under which to
search for checkouts; default=home dir
[+]
. Directory under
which to NOT search for checkouts
[+]
. Extra argument to pass
to the cvs program
[+]
. Extra argument to pass
to the git program
[+]
. Extra argument to pass
to the hg program
[+]
. Extra argument to pass
to the svn program
[+]
marked option can be specified multiple times
File format for .mvc-checkouts
file
The remainder of this document describes the file format for the .mvc-checkouts
file.
(Note: because mvc can search for all checkouts in your directory, you don't need a .mvc-checkouts
file. Using a .mvc-checkouts
file makes the program faster because it
does not have to search all of your directories. It also permits you to process only a certain
set of checkouts.)
The .mvc-checkouts
file contains a list of sections. Each section names
either a root from which a sub-part (e.g., a module or a subdirectory) will be checked out, or a
repository all of which will be checked out. Examples include:
CVSROOT: :ext:login.csail.mit.edu:/afs/csail.mit.edu/u/m/mernst/.CVS/.CVS-mernst SVNROOT: svn+ssh://tricycle.cs.washington.edu/cse/courses/cse403/09sp SVNREPOS: svn+ssh://login.csail.mit.edu/afs/csail/u/a/akiezun/.SVN/papers/parameterization-paper/trunk HGREPOS: https://jsr308-langtools.googlecode.com/hgWithin each section is a list of directories that contain a checkout from that repository. If the section names a root, then a module or subdirectory is needed. By default, the directory's basename is used. This can be overridden by specifying the module/subdirectory on the same line, after a space. If the section names a repository, then no module information is needed or used.
When performing a checkout, the parent directories are created if needed.
In the file, blank lines, and lines beginning with "#", are ignored.
Here are some example sections:
CVSROOT: :ext:login.csail.mit.edu:/afs/csail.mit.edu/group/pag/projects/classify-tests/.CVS ~/research/testing/symstra-eclat-paper ~/research/testing/symstra-eclat-code ~/research/testing/eclat SVNROOT: svn+ssh://login.csail.mit.edu/afs/csail/group/pag/projects/.SVNREPOS/ ~/research/typequals/igj ~/research/typequals/annotations-papers SVNREPOS: svn+ssh://login.csail.mit.edu/afs/csail/group/pag/projects/abb/REPOS ~/prof/grants/2008-06-abb/abb HGREPOS: https://checker-framework.googlecode.com/hg/ ~/research/types/checker-framework SVNROOT: svn+ssh://login.csail.mit.edu/afs/csail/u/d/dannydig/REPOS/ ~/research/concurrency/concurrentPaper ~/research/concurrency/mit.edu.concurrencyRefactorings concurrencyRefactorings/project/mit.edu.concurrencyRefactoringsFurthermore, these 2 sections have identical effects:
SVNROOT: https://crashma.googlecode.com/svn/ ~/research/crashma trunk SVNREPOS: https://crashma.googlecode.com/svn/trunk ~/research/crashmaand, all 3 of these sections have identical effects:
SVNROOT: svn+ssh://login.csail.mit.edu/afs/csail/group/pag/projects/ ~/research/typequals/annotations SVNROOT: svn+ssh://login.csail.mit.edu/afs/csail/group/pag/projects/ ~/research/typequals/annotations annotations SVNREPOS: svn+ssh://login.csail.mit.edu/afs/csail/group/pag/projects/annotations ~/research/typequals/annotations
Modifier and Type | Field and Description |
---|---|
java.lang.String |
checkouts
Deprecated.
File with list of checkouts.
|
java.util.List<java.lang.String> |
cvs_arg
Deprecated.
|
java.lang.String |
cvs_executable
Deprecated.
|
static boolean |
debug
Deprecated.
|
boolean |
debug_process_output
Deprecated.
|
boolean |
debug_replacers
Deprecated.
|
java.util.List<java.lang.String> |
dir
Deprecated.
|
boolean |
dry_run
Deprecated.
|
java.util.List<java.lang.String> |
git_arg
Deprecated.
|
java.lang.String |
git_executable
Deprecated.
|
java.util.List<java.lang.String> |
hg_arg
Deprecated.
|
java.lang.String |
hg_executable
Deprecated.
|
static java.lang.String |
home
Deprecated.
|
java.util.List<java.lang.String> |
ignore_dir
Deprecated.
|
boolean |
insecure
Deprecated.
|
boolean |
print_directory
Deprecated.
|
boolean |
quiet
Deprecated.
|
boolean |
redo_existing
Deprecated.
Default is for checkout command to skip existing directories.
|
boolean |
search
Deprecated.
|
boolean |
show
Deprecated.
|
java.util.List<java.lang.String> |
svn_arg
Deprecated.
|
java.lang.String |
svn_executable
Deprecated.
|
int |
timeout
Deprecated.
Terminating the process can leave the repository in a bad state, so set this rather high for
safety.
|
Constructor and Description |
---|
MultiVersionControl(java.lang.String[] args)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
static void |
main(java.lang.String[] args)
Deprecated.
|
void |
parseArgs(java.lang.String[] args)
Deprecated.
|
void |
process(java.util.Set<plume.MultiVersionControl.Checkout> checkouts)
Deprecated.
|
public static java.lang.String home
public java.lang.String checkouts
$HOME/.mvc-checkouts
.public java.util.List<java.lang.String> dir
public java.util.List<java.lang.String> ignore_dir
public boolean search
public boolean show
public boolean print_directory
public boolean dry_run
public boolean redo_existing
public int timeout
public boolean quiet
public java.lang.String cvs_executable
public java.lang.String git_executable
public java.lang.String hg_executable
public java.lang.String svn_executable
public boolean insecure
public java.util.List<java.lang.String> cvs_arg
public java.util.List<java.lang.String> git_arg
public java.util.List<java.lang.String> hg_arg
public java.util.List<java.lang.String> svn_arg
public static boolean debug
public boolean debug_replacers
public boolean debug_process_output