Skip to content

Instantly share code, notes, and snippets.

@FoxFireX
Created September 26, 2018 20:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FoxFireX/1b794384612b7fd5e7cd157cff96269e to your computer and use it in GitHub Desktop.
Save FoxFireX/1b794384612b7fd5e7cd157cff96269e to your computer and use it in GitHub Desktop.
Demonstration of git subtree failures
mkdir main
mkdir sub
cd sub
git init
echo "sub" > sub.txt
git add sub.txt
git commit sub.txt -m "Adding initial subtree content"
git checkout -b temp
cd ../main
git init
echo "main" > main.txt
git add main.txt
git commit -m "Adding initial main content (this commit will be incorrectly included in the ignore-joins case)"
git subtree add ../sub master --prefix sub
echo "new" > sub/new.txt
git add sub/new.txt
git commit -m "Adding new content for subtree"
git checkout -b side
echo "side" > side.txt
git add side.txt
git commit -m "Adding unrelated side branch content"
git checkout master
echo "master" > master.txt
git add master.txt
git commit -m "Adding unrelated master content (needed to expand commit graph to expose rejoin failure)"
git subtree split --prefix sub -b first_split --rejoin
git push ../sub first_split:master
git merge side -m "Merging side branch"
echo "final" > sub/final.txt
git add sub/final.txt
git commit -m "Adding new sub file to ensure changes are present for subtree"
git subtree split --prefix sub -b failed_rejoin
git subtree split --prefix sub --ignore-joins -b failed_ignore_joins
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment