1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-09-20 09:16:16 +02:00
github.com_openSUSE_osc/README

166 lines
4.4 KiB
Plaintext
Raw Normal View History

osc -- opensuse-commander with svn like handling
2006-04-20 16:31:24 +02:00
Please send patches to poeml@suse.de, or work directly on
https://forgesvn1.novell.com/svn/opensuse/trunk/buildservice/src/clientlib/python/osc/
2006-04-20 16:31:24 +02:00
INSTALLATION:
2006-05-10 16:47:27 +02:00
RPM packages are here (yum repository):
2006-07-10 18:11:07 +02:00
http://software.opensuse.org/download/openSUSE:/Tools/
To install from svn, do
2006-05-10 16:47:27 +02:00
python setup.py build
python setup.py install
# create a symlink 'osc' in your path pointing to osc.py.
ln -s osc-wrapper.py /usr/bin/osc
Alternatively, you can directly use osc-wrapper.py from the source dir
2006-07-10 18:11:07 +02:00
(which is easier if you develop on osc).
2006-05-10 16:47:27 +02:00
2006-07-10 18:11:07 +02:00
The program needs the cElementTree python module installed. On SUSE, the
respective package is called python-elementtree (before 10.2: python-xml).
For local building, you will need python-urlgrabber in addition. Those are
standard package on SUSE Linux since a while. If your version is too old, you
can find python-elementtree and python-urlgrabber here:
http://software.opensuse.org/download/devel:/languages:/python/
2006-05-10 16:47:27 +02:00
CONFIGURATION:
2006-05-23 11:30:30 +02:00
When you use it for the first time, it will ask you for your username and
password, and store it in ~/.oscrc.
If authentication data is found in .netrc, it will also be used.
2006-04-20 16:31:24 +02:00
USAGE EXAMPLES:
2006-07-10 18:11:07 +02:00
(online at http://en.opensuse.org/Build_Service/CLI )
2006-05-23 11:30:30 +02:00
To list existing content on the server
osc ls # list projects
osc ls Apache # list packages in a project
osc ls Apache subversion # list files of package of a project
Check out content
osc co Apache # entire project
osc co Apache subversion # a package
osc co Apache subversion foo # single file
Update a working copy
osc up
osc up [pac_dir] # update a single package by its path
osc up * # from within a project dir, update all packages
osc up # from within a project dir, update all packages
AND check out all newly added packages
If an update can't be merged automatically, a file is in 'C' (conflict)
state, and conflicts are marked with special <<<<<<< and >>>>>>> lines.
After manually resolving the problem, use
osc resolved foo
Upload change content
2006-05-23 11:30:30 +02:00
osc ci # current dir
osc ci <dir>
osc ci file1 file2 ...
Show the status (which files have been changed locally)
osc st
osc st <directory>
osc st file1 file2 ...
Mark files to be added or removed on the next 'checkin'
osc add file1 file2 ...
osc rm file1 file2 ...
Adds all new files in local copy and removes all disappeared files.
osc addremove
Generates a diff, to view the changes
osc diff # current dir
osc diff file1 file2 ...
Shows the build results of the package
osc results
osc results [platform]
Shows the log file of a package (you need to be inside a package directory)
2006-05-23 11:30:30 +02:00
osc log <platform> <arch>
Shows the URLs of .repo files which are packages sources for Yum/YaST/smart
osc repourls [dir]
Triggers a package rebuild for all repositories/architectures of a package
osc rebuildpac [dir]
2006-05-23 11:30:30 +02:00
Shows available platforms/build targets
osc platforms
Shows the configured platforms/build targets of a project
osc platforms <project>
Shows meta information
osc meta Apache
osc meta Apache subversion
osc id username
2006-05-23 17:32:55 +02:00
Edit meta information
(Creates new package/project if it doesn't exist)
osc editmeta Apache
osc editmeta Apache subversion
Update package meta data with metadata taken from spec file
osc updatepacmetafromspec <dir>
There are other commands, which you may not need (they may be useful in scripts):
osc repos
osc buildconfig
osc buildinfo
Locally build a package (see 'osc help build' for more info):
osc build <repo> <arch> specfile [--clean|--noinit]
Update a package to a different sources (directory foo_package_source):
cp -a foo_package_source foo; cd foo; osc init <prj> <pac>; osc addremove; osc ci; cd $OLDPWD; rm -r foo
HINT FOR W3M USERS
Putting the following in the file ~/.w3m/passwd will make
w3m know the credentials for the buildservice servers:
"""
host api.opensuse.org
port 80
realm Authentication required
login foo
password bar
host build.opensuse.org
port 80
realm openSUSE Build Service
login foo
password bar
"""
chmod 0600 ~/.w3m/passwd
2007-05-16 12:57:38 +02:00
NOTES about the testsuite
It requires editing tests.py, for a user account / project to work with.
I use my own project (home:poeml) for testing.
Tests can be run as ./tests.py
or, more powerful, with nosetests:
nosetests --exe
To run a single test, you can use:
nosetests --exe tests:TestOsc.testCmdOptVersion