|
|
|
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.
|