| Kitware Local Git Setup Scripts | |
| Introduction | |
| ------------ | |
| This is a collection of local Git development setup scripts meant for | |
| inclusion in project source trees to aid their development workflow. | |
| Project-specific information needed by the scripts may be configured | |
| in a "config" file added next to them in the project. | |
| Import | |
| ------ | |
| A project may import these scripts into their source tree by | |
| initializing a subtree merge. Bring up a Git prompt and set the | |
| current working directory inside a clone of the target project. | |
| Fetch the "setup" branch from the GitSetup repository: | |
| $ git fetch ../GitSetup setup:setup | |
| Prepare to merge the branch but place the content in a subdirectory. | |
| Any prefix (with trailing '/') may be chosen so long as it is used | |
| consistently within a project through the rest of these instructions: | |
| $ git merge -s ours --no-commit setup | |
| $ git read-tree -u --prefix=Utilities/GitSetup/ setup | |
| Commit the merge with an informative message: | |
| $ git commit | |
| ------------------------------------------------------------------------ | |
| Merge branch 'setup' | |
| Add Utilities/GitSetup/ directory using subtree merge from | |
| the general GitSetup repository "setup" branch. | |
| ------------------------------------------------------------------------ | |
| Optionally add to the project ".gitattributes" file the line | |
| /Utilities/GitSetup export-ignore | |
| to exclude the GitSetup directory from inclusion by "git archive" | |
| since it does not make sense in source tarballs. | |
| Configuration | |
| ------------- | |
| Read the "Project configuration instructions" comment in each script. | |
| Add a "config" file next to the scripts with desired configuration | |
| (optionally copy and modify "config.sample"). For example, to | |
| configure the "setup-hooks" script: | |
| $ git config -f Utilities/GitSetup/config hooks.url "$url" | |
| where "$url" is the project repository publishing the "hooks" branch. | |
| When finished, add and commit the configuration file: | |
| $ git add Utilities/GitSetup/config | |
| $ git commit | |
| Update | |
| ------ | |
| A project may update these scripts from the GitSetup repository. | |
| Bring up a Git prompt and set the current working directory inside a | |
| clone of the target project. Fetch the "setup" branch from the | |
| GitSetup repository: | |
| $ git fetch ../GitSetup setup:setup | |
| Merge the "setup" branch into the subtree: | |
| $ git merge -X subtree=Utilities/GitSetup setup | |
| where "Utilities/GitSetup" is the same prefix used during the import | |
| setup, but without a trailing '/'. | |
| License | |
| ------- | |
| Distributed under the Apache License 2.0. | |
| See LICENSE and NOTICE for details. |