Metadata-Version: 1.0
Name: checkoutmanager
Version: 1.9
Summary: UNKNOWN
Home-page: http://reinout.vanrees.org
Author: Reinout van Rees
Author-email: reinout@vanrees.org
License: GPL
Description: Checkoutmanager
        ===============
        
        Makes bzr/hg/git/svn checkouts in several places according to a
        ``.checkoutmanager.cfg`` config file (in your home directory).
        
        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...).
        
        Checkoutmanager works on linux, osx and windows.
        
        
        Starting to use it
        ------------------
        
        Starting is easy.  Just ``easy_install checkoutmanager`` and run
        ``checkoutmanager``.
        
        - The first time, you'll get a sample configuration you can copy to
          ``.checkoutmanager.cfg`` in your home directory.
        
        - The second time, you'll get a usage message.  (You'll want to do
          ``checkoutmanager co`` to grab your initial checkouts).
        
        
        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
        
        Note that there is also the ``upgrade`` command, but this is only
        useful for subversion.  It upgrades the working copy to the new
        subversion 1.7 layout of the .svn directory.  This should be done once
        after you have upgraded your subversion to 1.7.  Note that when you
        accidentally run this twice you get an error, but nothing breaks.
        Since this command is so rarely needed, it is not advertised in the
        command line help.
        
        
        Output directory naming
        -----------------------
        
        If you don't specify an output directory name for your checkout url, it just
        takes the last part.  Some exceptions, most for subversion:
        
        - ``https://xxx/yyy/product/trunk`` becomes "product" instead of "trunk".
        
        - ``https://xxx/yyy/product/branches/experiment`` becomes "product_experiment"
          instead of "experiment"
        
        - ``https://xxx/customername/buildout/trunk`` becomes "customername"
          instead of "trunk" or "buildout".
        
        - Bzr checkouts that start with "lp:" (special launchpad urls) get their "lp:"
          stripped.
        
        - Git checkouts lose the ".git" at the end of the url.
        
        If you want something else, just specify a directory name (separated by a
        space) in the configuration file.
        
        
        Config file
        -----------
        
        .. Comment: the config file is included into the long description by setup.py,
           it is in checkoutmanager/tests/sample.cfg!
        
        Sample configuration file::
        
        
          # Sample config file.  Should be placed as
          # .checkoutmanager.cfg in your home directory.
          #
          # 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
              https://host/customername/buildout/trunk
          
          [dotfolders]
          # Advanced usage!
          # Folders that end up as dotted configfolders in my home dir.
          # Note that there's a directory name behind the repository
          # location, separated by a space.
          vcs = bzr
          basedir = ~
          checkouts =
              lp:emacsconfig/trunk .emacs.d
              sftp://somwhere/subversion/trunk .subversion
        
        TODO
        ====
        
        - Wait for feedback so that I can improve the documentation.
        
        - Perhaps make a better sample config (one that actually works instead of the
          current one that's structured for benefit of the automated tests).
        
        
        Credits
        =======
        
        - Created by `Reinout van Rees <http://reinout.vanrees.org>`_.
        
        - "out" command by Dmitrii Miliaev.
        
        - Git support by Robert Kern.
        
        
        Source code is on bitbucket at http://bitbucket.org/reinout/checkoutmanager.
        
        Report bugs and feature requests can be reported at
        http://bitbucket.org/reinout/checkoutmanager/issues .
        
        
        
        Changelog of checkoutmanager
        ============================
        
        1.9 (2011-11-08)
        ----------------
        
        - Added ``upgrade`` command that upgrades your subversion checkouts to
          the new 1.7 layout of the ``.svn`` directory.
          [maurits]
        
        
        1.8 (2011-10-13)
        ----------------
        
        - Using ``git push --dry-run`` now to detect not-yet-pushed outgoing changes
          with ``checkoutmanager out``. Fixes #9 (reported by Maurits van Rees).
        
        
        1.7 (2011-10-06)
        ----------------
        
        - 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.
        
        
        1.6 (2010-12-27)
        ----------------
        
        - 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.
        
        
        1.5 (2010-09-14)
        ----------------
        
        - Using ``except CommandError, e`` instead of ``except CommandError as e`` for
          python2.4 compatibility.
        
        
        1.4 (2010-08-17)
        ----------------
        
        - Added git support (patch by Robert Kern: thanks!)  Fixes issue #6.
        
        
        1.3 (2010-08-09)
        ----------------
        
        - Added new "out" action that shows changesets not found in the default push
          location of a repository for a dvcs (hg, bzr).  The action doesn't make
          sense for svn, so it is ignored for svn checkouts.  Fixes issue #1.  Thanks
          Dmitrii Miliaev for this fix!
        
        
        1.2.1 (2010-08-06)
        ------------------
        
        - Bugfix: when reporting an error, the os.getcwd method itself would get
          printed instead of the *output* of os.getcwd()...
        
        
        1.2 (2010-08-04)
        ----------------
        
        - If the config file doesn't exist, just print the config file hints instead
          of the generic usage info.
        
        - Fixed issue #4: the generic 'buildout' name is stripped from the path.
          svn://somewhere/customername/buildout/trunk is a common pattern.
        
        - Added -v option that prints the commands and the directory where you execute
          them.  Fixes issue #3.
        
        - Reporting on not yet checked out items when running "checkoutmanager
          missing".  Fixes issue #2.
        
        - Checking return code from executed commands.  On error, the command and
          working directory is printed and also the output.  And the script stops
          right away.  Fixes #5.
        
        - Updated the documentation, for instance by mentioning the config file name
          and location.
        
        
        1.1 (2010-08-02)
        ----------------
        
        - Switched from "commands" module to "subprocesses" for windows
          compatibility.
        
        
        1.0 (2010-08-01)
        ----------------
        
        - Small fixes.  It works great in practice.
        
        - Moved from bzr to hg and made it public on bitbucket.org.
        
        - Big documentation update as I'm going to release it.
        
        
        0.1 (2010-05-07)
        ----------------
        
        - First reasonably working version.
        
        - Initial library skeleton created by thaskel.
        
Platform: UNKNOWN
