Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close
Cq
===========

Commit Queue is a tool to allow working on Subversion working copies, when
offline, while still making atomic commits. It does this by creating a
Mercurial repository ( a copy of the working copy ) and allowing you to commit
to Mercurial. It keeps track of files added and deleted and modified, along
with commit messages. When access is available, you can commit to the central
server automatically, and in order.

Installation
------------

Prerequisites:
 * [Python] ( http://www.python.org )
 * [Mercurial] ( http://mercurial.selenic.com )
 * [Subversion] ( http://subversion.tigris.org )

Cq is distributed as a distutils package. Extract the archive, go into the
directory and run:

    python setup.py install

The cq command will be installed in /usr/bin/ on Linux, and the relevant
location on Windows.

Usage
-----

### Initialize
    cq init /path/to/svn/working/copy [mercurial repository path]

Creates a new mercurial repository in ./copy-hg, where copy is the name of the
working copy directory. If mercurial repository path is specified, creates it
there instead. All files in the working copy are copied over to the repository
and an initial commit is made. In addition a commit hook is registered to
track the repository state and synchronize with the working copy.

cq init will create a .cq directory in both the working copy and the
repository. You should set the svn:ignore option on the .cq in the working
copy.

From this point on you should change to the mercurial repository

    edit files...
    hg add
    hg rm
    hg ci -m "Message"
    ...


### Commit
Assuming you now have access to the central Subversion repository, run:
    cq commit

This will perform the modifications that you did on the mercurial repository
in order and run svn commit with each commit message. Use -v to view
individual svn commands. Right now there is no support for resuming from a
certain commit, so be careful about interrupting the process.

### Cleanup
If you no longer want the repository, run:
    cq clean

This will remove the relevant .cq directories. If the -d option is set, it
will also delete the Mercurial repository. NOTE: Cq does not currently check
if commits are pending, so be careful!

Recent activity

Nothing to see here, move along.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.