-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
117 lines (104 loc) · 6.01 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Usage: epics-checkout.py <Command or File_listing_packages_and_tags (one pair per line)>
epics-checkout (eco) is a script that wraps git clone/cvs checkout and does some additional things that make compilation of modules within the EPICS LCLS/PCDS environment easier.
The main intent of epics-checkout is to get hardcoded paths out of configure/RELEASE.
It generates a file called RELEASE_SITE that contains these hardcoded paths; the configure/RELEASE.local now instead includes RELEASE_SITE
epics-checkout has interactive and batch modes.
To start epics-checkout in interactive mode, simply type epics-checkout or eco
For the batch mode, you can pass in a file containing a list of the modules you want to checkout; for example, eco modulelist.txt.
Each line in this file contains the module name and the branch/tag label.
For example, a line for the sequencer would have "seq seq-R2-0-11-lcls4"
epics-checkout also supports a command called initrepo "eco initrepo" that creates a bare git repository for your package.
"epics-checkout initrepo" prompts you for a package name and type and repo location.
It then creates a bare git repo in the location specified; it also creates a default .gitignore and cram configuration for your package.
epics-checkout also supports a command called cvs2git "eco cvs2git" that imports a module from CVS into a git bare repo.
"eco cvs2git" prompts you for a module name and type and repo location.
It then creates a bare git repo in the location specified; imports the history from CVS and adds a default .gitignore.
It comments out the module location in the CVSROOT/modules file; however, it does NOT do a cvs remove of the software from CVS.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-v, --verbose print verbose output
-b, --batch Run without confirmation prompts
-m MODULE, --module=MODULE
Module to checkout, optionally add the tag to use
-d DESTINATION, --destination=DESTINATION
Checkout the package to this folder. Uses cvs -d. For
example, eco -d CATER_12345 on MAIN_TRUNK checks out
MAIN_TRUNK into a folder called CATER_12345. This
option is ignored in batch mode.
usage: epics-versions.py [options] MODULE ...
MODULE can be one or more of:
base
modules
modules/<MODULE_NAME>
ioc
ioc/<hutch>
ioc/<hutch>/<IOC_NAME>
screens/edm/<hutch>
etc ...
Ex: epics-versions.py ioc/xpp
For help: epics-versions.py --help
Report on available module versions and dependencies
options:
-h, --help show this help message and exit
-a, --all display all revisions of each module
-v, --verbose show dependent modules
-d, --debug display more info for debugging script
-b BASE, --base=BASE Restrict output to modules for specified base version
ex. --base=R3.14.9-0.3.0
-w, --wide Wide output, all module info on one line
--top=TOP Top of EPICS module release area ex. --top=/afs/slac/g
/pcds/package/epics/R3.14.12.5-0.1.0/modules
--allTops Search all accessible known EPICS module release
locations
usage: epics-build.py [-h] [-p PACKAGES] [-f INPUT_FILE_PATH] [-r REPO]
[-t TOP] [-v]
epics-build builds one or EPICS module releases.
optional arguments:
-h, --help show this help message and exit
-p PACKAGES, --package PACKAGES
EPICS module-name/release-version. Ex:
asyn/R4.30-1.0.1
-f INPUT_FILE_PATH, --input_file_path INPUT_FILE_PATH
Read list of module releases from this file
-r REPO, --repo REPO repo url
-t TOP, --top TOP Top of release area.
-v, --verbose show more verbose output.
Standard EPICS modules can be specified w/ just the module basename.
Similarly, modules or packages listed in eco_modulelist
(/afs/slac/g/lcls/tools/eco_modulelist/modulelist.txt) can be specified w/
just the module or package name. Longer module repo paths will be checked
against GIT_TOP (/afs/slac/g/cd/swe/git/repos). and also against svn tags top
(file:///afs/slac/g/pcds/vol2/svn/pcds). and also cvs root
(/afs/slac/g/lcls/cvs). i.e. Repo searched for in $TOP/[module-path/]module-
name/release-version
Usage: epics-release.py [options] [ <module> ] -r <release> -m "My release comments"
Ex: epics-release.py ioc/xpp/vacuum -r R0.1.0 -m "Adding baratron gauge"
For help: epics-release.py --help
Options:
-h, --help show this help message and exit
-r RELEASE, -R RELEASE, --release=RELEASE
release version string, ex. -r R1.2.3-0.1.0
-m MESSAGE, --message=MESSAGE
release message in quotes
-v, --verbose show commands as they are executed
-q, --quiet do not show build or checkout output
--revision=REVISION specify revision or branch, defaults to HEAD
--noMsg do not include a release message
-n, --noTag do not tag, just rebuild an existing release
--notag do not tag, just rebuild an existing release
-b BRANCH, --branch=BRANCH
branch to release, ex.
$REPO/epics/branch/bugFix/ioc/cam/R0.2.1
-i INSTALLDIR, --install=INSTALLDIR
install directory, ex.
/reg/g/pcds/package/epics/3.14/base/R0.0.1
-d, --debug display more info for debugging script
--dryRun Do test build but no tag or install
--noTestBuild Skip test build
--rmBuild Remove release build. Does not do a new release.
--rmTag Remove release tag. Does not do a new release.
-x, --nukeRelease Remove tag and build of release. Does not do a new
release.
--keeptmp do not erase the temp build directory
--batch do not prompt for confirmation