Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page is for integrators who will be bringing in code or changes to code from an external repository. This page describes the process where the code will be integrated into the ACME repository as a git subtree.

...

There are four possible workflows; Inserting in a new external to ACME as a subtree, replacing original ACME code with an external, replacing modified ACME code with an external, and merging in changes to an external subtree. Each workflow is outlined below followed by sections showing details for various workflow step types.

Insert new external subtree into ACME

  1. Create a branch in which to conduct the work. Be sure to follow the branch naming conventions and other development practices. If the external code is to be completely replaced, create the branch from the commit where the code was last brought into the ACME repository (similar for the procedure for fixing a bug). The branch name should follow the form github-username/component/component.<version>_import.
  2. Add external git repo to ACME.
  3. Test and submit a pull request as defined in the development practices page.

...

Replace original (unmodified) ACME code with external subtree

  1.  Verify that the external code in the ACME repository has been not been modified since the initial commit. If there are changes (non-blank output), follow the 'Replace modified' workflow below.
  2. Create a branch in which to conduct the work. Be sure to follow the branch naming conventions and other development practices. If the external code is to be completely replaced, create the branch from the commit where the code was last brought into the ACME repository (similar for the procedure for fixing a bug). The branch name should follow the form github-username/component/component.<version>_import.
  3. Remove the code from your working copy.
  4.  Check to see if the version of the code in the ACME repository has been modified since the initial commit. If there are no changes (blank output), skip to step 6. <always go to step 6?>
  5. Add external git repo to ACME. Now, skip to step 7.
  6. To bring in changes to external repo <fill this in with git subtree merge (and git remote add --tags?)>.
  7. Test and submit a pull request as defined in the development practices page.

...

Replace modified ACME code with external subtree

  1. Create a branch in which to conduct the work. Be sure to follow the branch naming conventions and other development practices. If the external code is to be completely replaced, create the branch from the commit where the code was last brought into the ACME repository (similar for the procedure for fixing a bug). The branch name should follow the form github-username/component/component.<version>_import.
  2. If the external code is new (no version is currently in ACME repository), skip to step 5.
  3. If the external code is to be completely replaced, remove the code from your working copy. Then, skip to step 5.
  4.  Check to see if the version of the code in the ACME repository has been modified since the initial commit. If there are no changes (blank output), skip to step 6. <always go to step 6?>
  5. Add external git repo to ACME. Now, skip to step 7.
  6. To bring in changes to external repo <fill this in with git subtree merge (and git remote add --tags?)>.
  7. Test and submit a pull request as defined in the development practices page.

Important notes

...

Merge changes from external into ACME subtree

  1. Create a branch in which to conduct the work. Be sure to follow the branch naming conventions and other development practices. If the external code is to be completely replaced, create the branch from the commit where the code was last brought into the ACME repository (similar for the procedure for fixing a bug). The branch name should follow the form github-username/component/component.<version>_import.
  2. If the external code is new (no version is currently in ACME repository), skip to step 5.
  3. If the external code is to be completely replaced, remove the code from your working copy. Then, skip to step 5.
  4.  Check to see if the version of the code in the ACME repository has been modified since the initial commit. If there are no changes (blank output), skip to step 6. <always go to step 6?>
  5. Add external git repo to ACME. Now, skip to step 7.
  6. To bring in changes to external repo <fill this in with git subtree merge (and git remote add --tags?)>.
  7. Test and submit a pull request as defined in the development practices page.

 

...

 

...

Anchor
RemoveOriginal
RemoveOriginal
Removing original external code (external code initially installed with ACME v0.0)

...

    git rm -r <external-subdir>
    git commit -a

Anchor
#Check4CodeMods
#Check4CodeMods
Checking for code modification (external code initially installed with ACME v0.0)

...

    git diff --name-only v0.0 .

Anchor
AddRemote
AddRemote
Add external git repo as new remote

    git remote add -f --tags <external_name> <external_url>

Anchor
AddExternal2Repo
AddExternal2Repo
Add code from external

...

to ACME

    cd <ACME_top_level>
    git subtree add --prefix=<external_subdir> --squash <external_repo_URL> <external_branchname>
     git merge -X subtree=the-dir/ $commit

Filter by label (Content by label)
showLabelsfalse
max5
spacesSE
showSpacefalse
sortmodified
reversetrue
typepage
labelsRepository

...