mirror of
https://github.com/git/git.git
synced 2024-11-02 07:17:58 +01:00
f237c8b6fe
Teach git-commit-graph to write graph files. Create new test script to verify this command succeeds without failure. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
124 lines
2.5 KiB
Bash
Executable file
124 lines
2.5 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='commit graph'
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup full repo' '
|
|
mkdir full &&
|
|
cd "$TRASH_DIRECTORY/full" &&
|
|
git init &&
|
|
objdir=".git/objects"
|
|
'
|
|
|
|
test_expect_success 'write graph with no packs' '
|
|
cd "$TRASH_DIRECTORY/full" &&
|
|
git commit-graph write --object-dir . &&
|
|
test_path_is_file info/commit-graph
|
|
'
|
|
|
|
test_expect_success 'create commits and repack' '
|
|
cd "$TRASH_DIRECTORY/full" &&
|
|
for i in $(test_seq 3)
|
|
do
|
|
test_commit $i &&
|
|
git branch commits/$i
|
|
done &&
|
|
git repack
|
|
'
|
|
|
|
test_expect_success 'write graph' '
|
|
cd "$TRASH_DIRECTORY/full" &&
|
|
graph1=$(git commit-graph write) &&
|
|
test_path_is_file $objdir/info/commit-graph
|
|
'
|
|
|
|
test_expect_success 'Add more commits' '
|
|
cd "$TRASH_DIRECTORY/full" &&
|
|
git reset --hard commits/1 &&
|
|
for i in $(test_seq 4 5)
|
|
do
|
|
test_commit $i &&
|
|
git branch commits/$i
|
|
done &&
|
|
git reset --hard commits/2 &&
|
|
for i in $(test_seq 6 7)
|
|
do
|
|
test_commit $i &&
|
|
git branch commits/$i
|
|
done &&
|
|
git reset --hard commits/2 &&
|
|
git merge commits/4 &&
|
|
git branch merge/1 &&
|
|
git reset --hard commits/4 &&
|
|
git merge commits/6 &&
|
|
git branch merge/2 &&
|
|
git reset --hard commits/3 &&
|
|
git merge commits/5 commits/7 &&
|
|
git branch merge/3 &&
|
|
git repack
|
|
'
|
|
|
|
# Current graph structure:
|
|
#
|
|
# __M3___
|
|
# / | \
|
|
# 3 M1 5 M2 7
|
|
# |/ \|/ \|
|
|
# 2 4 6
|
|
# |___/____/
|
|
# 1
|
|
|
|
|
|
test_expect_success 'write graph with merges' '
|
|
cd "$TRASH_DIRECTORY/full" &&
|
|
git commit-graph write &&
|
|
test_path_is_file $objdir/info/commit-graph
|
|
'
|
|
|
|
test_expect_success 'Add one more commit' '
|
|
cd "$TRASH_DIRECTORY/full" &&
|
|
test_commit 8 &&
|
|
git branch commits/8 &&
|
|
ls $objdir/pack | grep idx >existing-idx &&
|
|
git repack &&
|
|
ls $objdir/pack| grep idx | grep -v --file=existing-idx >new-idx
|
|
'
|
|
|
|
# Current graph structure:
|
|
#
|
|
# 8
|
|
# |
|
|
# __M3___
|
|
# / | \
|
|
# 3 M1 5 M2 7
|
|
# |/ \|/ \|
|
|
# 2 4 6
|
|
# |___/____/
|
|
# 1
|
|
|
|
test_expect_success 'write graph with new commit' '
|
|
cd "$TRASH_DIRECTORY/full" &&
|
|
git commit-graph write &&
|
|
test_path_is_file $objdir/info/commit-graph
|
|
'
|
|
|
|
test_expect_success 'write graph with nothing new' '
|
|
cd "$TRASH_DIRECTORY/full" &&
|
|
git commit-graph write &&
|
|
test_path_is_file $objdir/info/commit-graph
|
|
'
|
|
|
|
test_expect_success 'setup bare repo' '
|
|
cd "$TRASH_DIRECTORY" &&
|
|
git clone --bare --no-local full bare &&
|
|
cd bare &&
|
|
baredir="./objects"
|
|
'
|
|
|
|
test_expect_success 'write graph in bare repo' '
|
|
cd "$TRASH_DIRECTORY/bare" &&
|
|
git commit-graph write &&
|
|
test_path_is_file $baredir/info/commit-graph
|
|
'
|
|
|
|
test_done
|