post-receive-delivery: add a deliver command
[git-central.git] / README.markdown
1
2 Overview
3 ========
4
5 Tweaks for using git in a corporate/close-team environment.
6
7 Scripts
8 =======
9
10 * [checkout][12]: does the right thing for creating/tracking a new or existing remote branch
11 * [push][13]: pushes only the current branch to origin
12 * [pull][14]: pulls changes down but with `rebase-i-p` to avoid same-branch merges and commit replays
13
14 [12]: /stephenh/git-central/blob/master/scripts/checkout
15 [13]: /stephenh/git-central/blob/master/scripts/push
16 [14]: /stephenh/git-central/blob/master/scripts/pull
17
18 Server-side Hooks
19 =================
20
21 See the individual scripts for documentation, but an overview:
22
23 * [post-receive-commitnumbers][1]: makes Subversion-like monotonically increasing commit numbers for every commit
24 * [post-receive-email][2]: contrib email script with customizations for stuff like combined diffs
25 * [post-receive-gitconfig][3]: auto-updates the git config+hooks on the server when updated in the repo
26 * [post-receive-hudson][4]: auto-creates new jobs in Hudson when branches in git are created
27 * [post-receive-trac][5]: updates trac tickets with messages referencing the commits
28 * [update-allow-tags-branches][6]: contrib/example branch/tag enforcement script with customizations
29 * [update-ensure-follows][7]: allows nomination of special branches (e.g. stable) that everyone must have merged
30 * [update-ensure-ticket-reference][8]: enforces ticket references in commit messages (e.g. for trac)
31 * [update-lock-check][9]: enforces locked/preserved branches
32 * [update-stable][10]: enforces proper movement of stable
33
34 [1]: /stephenh/git-central/blob/master/server/post-receive-commitnumbers
35 [2]: /stephenh/git-central/blob/master/server/post-receive-email
36 [3]: /stephenh/git-central/blob/master/server/post-receive-gitconfig
37 [4]: /stephenh/git-central/blob/master/server/post-receive-hudson
38 [5]: /stephenh/git-central/blob/master/server/post-receive-trac
39 [6]: /stephenh/git-central/blob/master/server/update-allow-tags-branches
40 [7]: /stephenh/git-central/blob/master/server/update-ensure-follows
41 [8]: /stephenh/git-central/blob/master/server/update-ensure-ticket-reference
42 [9]: /stephenh/git-central/blob/master/server/update-lost-check
43 [10]: /stephenh/git-central/blob/master/server/update-stable
44
45 Client-side Hooks
46 =================
47
48 * [commit-msg-trac][11]: enforces ticket references in commit messages
49
50 [11]: /stephenh/git-central/blob/master/client/commit-msg-trac
51
52 Bootstrapping Scripts
53 =====================
54
55 * [create-gitconfig][15]: creates a new DAG for managing repository-specific configuration (works with [post-receive-gitconfig][3])
56 * [create-stable][16]: creates a new DAG for the first release to merge in to (works with [update-stable][10])
57
58 [15]: /stephenh/git-central/blob/master/scripts/create-gitconfig
59 [16]: /stephenh/git-central/blob/master/scripts/create-stable
60
61 Install Server-side Hooks
62 =========================
63
64 * Download/clone the `gc` repo to something like `/srv/git/gc`
65 * Edit `your_repo.git/hooks/post-receive` and `your_repo.git/hooks/update` to call the `gc` hooks as appropriate
66   * [post-receive.sample][17] and [update.sample][18] are good templates to use for calling multiple hooks
67
68 [17]: /stephenh/git-central/blob/master/server/post-receive.sample
69 [18]: /stephenh/git-central/blob/master/server/update.sample
70
71 Todo
72 ====
73
74 * Install approach for scripts
75 * Install for client hooks
76