summaryrefslogtreecommitdiff
path: root/exporters/darcs/git-darcs.txt
blob: 8bf5b33c85308bba5162b1914ffc1bf9f4cb82b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
= git-darcs(1)

== NAME

git-darcs - a bidirectional git - darcs gateway

== SYNOPSIS

git-darcs <command> <options>

== DESCRIPTION

git darcs can convert a darcs repo to a git one, can update such an
existing git repo later, and finally can push back your changes from the
git repo to the darcs one.

A typical workflow is:

----
$ mkdir git-repo
$ cd git-repo
$ git init
$ git darcs add upstream /path/to/darcs-repo
$ git darcs pull upstream

... hack, hack, hack ...

$ git darcs push upstream
----

== GLOBAL OPTIONS

-h, --help::
	Display usage.

== COMMANDS

The supported commands are the followings:

add::
	This can register a new darcs repo in the git one, so that you
	can fetch from it. The syntax is `add nick path [dfe-options]`.
	Add any options you want to be passed to darcs-fast-export,
	like --encoding=utf-8, or --authors-file AUTHORMAP. Remember
	that if AUTHORMAP is not absolute, it will be interpreted
	relative to the git repository's root directory.

push::
	Transfers your changes created in the current branch back the
	darcs one. The syntax is `push nick`.

fetch::
	Downloads changes from the darcs repo and updates the
	`darcs/<nick>` branch. None of your local branches are updated.

pull::
	Calls `fetch` then `git merge` or `git rebase` based on the
	`branch.<branchname>.rebase` configuration setting, where `<branchname>`
	is the current branch. The default is - just like with `git pull` - is
	to `git merge`.

list::
	List the name [and location] of each registered darcs repo.
	The syntax is `list [-v|--verbose]`.

find-darcs::
	Searches for darcs patches matching a SHA1 prefix.
	The syntax is `find-darcs <sha1-prefix>`.

find-git::
	Searches for git commits matching a darcs patch prefix.
	The syntax is `find-git <patch-prefix>`.

== HOOKS

It's possible to automatically run before and after the fetch and the
push subcommand. For example if you want to automatically run `darcs
pull -a` before a `git darcs fetch upstream`:

----
git config git-darcs.upstream.pre-fetch "darcs pull -a --repodir=/path/to/darcs-repo"
----

Or in case you want to automatically `darcs send` all patches after a
`git darcs push upstream`:

----
git config git-darcs.upstream.post-push "darcs send -a --repodir=/path/to/darcs-repo"
----

== SEE-ALSO
*git*(1), *darcs*(1)