workdirs: ensure the .yap directory exists in the new repo
[yap.git] / README
blob13e84b55348ce1e1c497f25fd3ec1bf869a024e9
1 Yet Another (Git) Porcelain
2 ===========================
3 This project is three things, in increasing order of relevance:
5     1) A git porcelain implemented in python
6     2) A git porcelain with a friendlier, more orthogonal interface
7     3) A extensible git porcelain
9 The third point is most interesting, because as far as the author is
10 aware, it is the first such project to attempt to achieve this.
11 Included in this distribution are plugins to create backups during
12 revert, make "temporary" commits, and ease interoperability with
13 subversion repositories.
15 Using git to operate on subversion-hosted repositories is a frequent use
16 case, and will continue to be until the world embraces git as the
17 awesome tool it is (keep in mind that even CVS is still in common
18 usage).  The git-svn tool distributed with git greatly facilitates this.
19 However, using git-svn requires markedly different workflows, commands,
20 and mental processes than does working with git-native repositories.
22 By leveraging the extensible nature of yap, its svn mode strives to make
23 a remote svn repository act and feel as much like a git repository as
24 possible to lessen the impedance mismatch to the user.
26 Yap is still very much a work-in-progress.  Patches are welcome.
27 Suggestions are welcome.  Bug reports are expected.  Hopefully this
28 yap can fill a gap in your git toolbox.
30 Features
31 --------
32     * Most commands are easily and clearly reversible (commit/uncommit).  Those
33       that are not are clearly marked as such.
34     * Commands that have potentially unintended side-effects warn about such.
35       For example, "point" will warn if moving the branch would make some
36       commits reachable only through the commit log
37     * SVN interoperation
38         * Cloning an SVN repository is no different than cloning a git
39           repository (only slower)
40         * Same command to push to an SVN repo as a git repo
41         * Standard workflow (yap update) is appropriate for svn-based and
42           git-native setups
43         * Working with "cache repositories" is supported directly.  When
44           cloning a repository generated by "yap clone <svn url>", the new
45           repositories is automatically configured to push back to the
46           subversion repository.