checkoutmanager

Software Screenshot:
checkoutmanager
Software Details:
Version: 1.13
Upload Date: 20 Feb 15
Developer: Reinout van Rees
Distribution Type: Freeware
Downloads: 3

Rating: 1.0/5 (Total Votes: 1)

checkoutmanager makes bzr/hg/git/svn checkouts in several places according to a config file.

Developer comments

The advantage: you've got one command with which you can update all your checkouts. And with which you can ask for a list of uncommitted changes. And you can rebuild your entire checkout structure on a new machine just by copying the config file (this was actually the purpose I build it for: I had to change laptops when I switched jobs...).

Warning: I only tested it on OSX and Linux, so no guarantees for windows. If there are changes needed, they'll probably be minor. So I welcome bug reports and patches.

Generic usage

What I normally do every morning when I get to work is checkoutmanager up. This grabs the latest versions of all my checkouts from the server(s). So an svn up for my subversion checkouts, a hg pull -u for mercurial and so on.

From time to time, I'll do a checkoutmanager st to show if I've got some uncommitted files lying around somewhere. Very handy if you've worked in several directories throughout the day: it prevents you from forgetting to check in that one bugfix for a whole week.

A new project means I add a single line to my config file and run checkoutmanager co.

Checkoutmanager allows you to spread your checkouts over multiple directories. It cannot mix version control systems per directory, however. As an example, I've got a ~/buildout/ directory with my big svn website projects checked out there. And a directory with my svn work python libraries. And a ~/hg/ dir with my mercurial projects. And I've made checkouts of several config directories in my home dir, such as ~/.emacs.d, ~/.subversion and so on. Works just fine.

Commands

Available commands:

exists
 Print whether checkouts are present or missing
up
 Grab latest version from the server.
st
 Print status of files in the checkouts
co
 Grab missing checkouts from the server
missing
 Print directories that are missing from the config file

Output directory naming

If you don't specify an output directory name for your checkout url, it just takes the last part. One exception: subversion. It is intelligent there:

 * https://xxx/yyy/product/trunk becomes "product" instead of "trunk".
 * https://xxx/yyy/product/branches/experiment becomes "product_experiment" instead of "experiment"

If you want something else, just specify a directory name (separated by a space) in the configuration file.

Config file

Sample configuration file:

# Sample config file. Different sections per base location and version
# control system. Splitting everything all over the place in multiple
# directories is fine.

[recipes]
# Buildout recipes I work on.
vcs = svn
basedir = ~/svn/recipes
checkouts =
 svn://svn/blablabla/trunk
 svn://svn/another/trunk differentname
 http://host/yetanother/trunk
 https://host/yetanother/branches/reinout-fix

[dotfolders]
# Folders that end up as dotted configfolders in the root.
vcs = bzr
basedir = ~
checkouts =
 lp:emacsconfig/trunk .emacs.d
 sftp://somwhere/subversion/trunk .subversion

What is new in this release:

  • Not using the sample config file as the test config file anymore. This means there's a much nicer and more useful sample config file now.
  • (Thanks Craig Blaszczyk for his pull request that was the basis for this!)

What is new in version 1.12:

  • For bzr, the "out" command uses the exit code instead of the command output now. This is more reliable and comfortable. Fix by Jendrik Seipp, thanks!

What is new in version 1.11:

  • Allow more than one vcs in a directory. This was already possible before, but now known you no longer need to list all the checkouts of the competing vcs in the ignore option. Also, items that are ignored in one section are now also ignored in other sections for the same directory. Fixes #11. [maurits]

What is new in version 1.10:

  • Using --mine-only option to bzr missing to only show our outgoing changesets when running checkoutmanager's "out" command for bzr.
  • Copying sample .cfg file if it doesn't exist instead of only suggesting the copy. Fixes #12.
  • Added hidden info command. Should be only useful for subversion if your svn program is updated and your OS requires you to give svn access to your stored credentials again, for each repository. [maurits]

What is new in version 1.9:

  • Added upgrade command that upgrades your subversion checkouts to the new 1.7 layout of the .svn directory. [maurits]

What is new in version 1.8:

  • Using git push --dry-run now to detect not-yet-pushed outgoing changes with checkoutmanager out. Fixes #9 (reported by Maurits van Rees).

What is new in version 1.7:

  • Added --configfile option. Useful when you want to use checkoutmanager to manage checkouts for something else than your regular development projects. In practice: I want to use it for an 'sdistmaker' that works with git.

What is new in version 1.6:

  • Full fix for #7: checkoutmanager doesn't stop on the first error, but continues. And it reports all errors afterwards. This helps when just one of your svn/hg/whatever servers is down: the rest will just keep working.
  • Partial fix for #7: svn up runs with --non-interactive now, so conflict errors errors are reported instead of pretty much silently waiting for interactive input that will never come.

What is new in version 1.5:

  • Using except CommandError, e instead of except CommandError as e for python2.4 compatibility.

Requirements:

  • Python

Similar Software

gitstatus
gitstatus

12 May 15

hgreview
hgreview

14 Apr 15

Bazaar Explorer
Bazaar Explorer

20 Feb 15

Other Software of Developer Reinout van Rees

lizard-ui
lizard-ui

20 Feb 15

lizard-map
lizard-map

20 Feb 15

Comments to checkoutmanager

Comments not found
Add Comment
Turn on images!