]>
Commit | Line | Data |
---|---|---|
215a7ad1 JH |
1 | git-sh-setup(1) |
2 | =============== | |
7fc9d69f JH |
3 | |
4 | NAME | |
5 | ---- | |
2de9b711 | 6 | git-sh-setup - Common Git shell script setup code |
7fc9d69f JH |
7 | |
8 | SYNOPSIS | |
9 | -------- | |
7791a1d9 | 10 | [verse] |
bd870878 | 11 | '. "$(git --exec-path)/git-sh-setup"' |
7fc9d69f JH |
12 | |
13 | DESCRIPTION | |
14 | ----------- | |
7fc9d69f | 15 | |
850844e2 JH |
16 | This is not a command the end user would want to run. Ever. |
17 | This documentation is meant for people who are studying the | |
18 | Porcelain-ish scripts and/or are writing new ones. | |
19 | ||
0b444cdb | 20 | The 'git sh-setup' scriptlet is designed to be sourced (using |
850844e2 | 21 | `.`) by other shell scripts to set up some variables pointing at |
2de9b711 | 22 | the normal Git directories and a few helper shell functions. |
850844e2 JH |
23 | |
24 | Before sourcing it, your script should set up a few variables; | |
25 | `USAGE` (and `LONG_USAGE`, if any) is used to define message | |
26 | given by `usage()` shell function. `SUBDIRECTORY_OK` can be set | |
27 | if the script can run from a subdirectory of the working tree | |
28 | (some commands do not). | |
29 | ||
30 | The scriptlet sets `GIT_DIR` and `GIT_OBJECT_DIRECTORY` shell | |
31 | variables, but does *not* export them to the environment. | |
32 | ||
33 | FUNCTIONS | |
34 | --------- | |
35 | ||
36 | die:: | |
37 | exit after emitting the supplied error message to the | |
38 | standard error stream. | |
39 | ||
40 | usage:: | |
41 | die with the usage message. | |
42 | ||
43 | set_reflog_action:: | |
44 | set the message that will be recorded to describe the | |
45 | end-user action in the reflog, when the script updates a | |
46 | ref. | |
47 | ||
3f4bc3e0 MV |
48 | git_editor:: |
49 | runs an editor of user's choice (GIT_EDITOR, core.editor, VISUAL or | |
50 | EDITOR) on a given file, but error out if no editor is specified | |
51 | and the terminal is dumb. | |
52 | ||
850844e2 JH |
53 | is_bare_repository:: |
54 | outputs `true` or `false` to the standard output stream | |
55 | to indicate if the repository is a bare repository | |
56 | (i.e. without an associated working tree). | |
57 | ||
58 | cd_to_toplevel:: | |
59 | runs chdir to the toplevel of the working tree. | |
60 | ||
61 | require_work_tree:: | |
e2eb5273 JH |
62 | checks if the current directory is within the working tree |
63 | of the repository, and otherwise dies. | |
64 | ||
65 | require_work_tree_exists:: | |
66 | checks if the working tree associated with the repository | |
67 | exists, and otherwise dies. Often done before calling | |
68 | cd_to_toplevel, which is impossible to do if there is no | |
69 | working tree. | |
850844e2 | 70 | |
d577cd21 TR |
71 | require_clean_work_tree <action> [<hint>]:: |
72 | checks that the working tree and index associated with the | |
73 | repository have no uncommitted changes to tracked files. | |
74 | Otherwise it emits an error message of the form `Cannot | |
75 | <action>: <reason>. <hint>`, and dies. Example: | |
76 | + | |
77 | ---------------- | |
78 | require_clean_work_tree rebase "Please commit or stash them." | |
79 | ---------------- | |
80 | ||
3f4bc3e0 MV |
81 | get_author_ident_from_commit:: |
82 | outputs code for use with eval to set the GIT_AUTHOR_NAME, | |
83 | GIT_AUTHOR_EMAIL and GIT_AUTHOR_DATE variables for a given commit. | |
84 | ||
7fc9d69f JH |
85 | GIT |
86 | --- | |
9e1f0a85 | 87 | Part of the linkgit:git[1] suite |