mirror of
https://github.com/git/git
synced 2024-08-28 12:09:19 +00:00
![Michael Spang](/assets/img/avatar_default.png)
Some of the git-svn tests can fail on fast machines due to a race in Subversion: if a file is modified in the same second it was checked out (or in for that matter), Subversion will not consider it modified. This works around the problem by increasing the timestamp by one second before each commit. [jc: with "touch -r -d" replacement from Eric] Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Michael Spang <mspang@uwaterloo.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
70 lines
1.8 KiB
Bash
Executable file
70 lines
1.8 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2006 Eric Wong
|
|
test_description='git-svn commit-diff clobber'
|
|
. ./lib-git-svn.sh
|
|
|
|
test_expect_success 'initialize repo' "
|
|
mkdir import &&
|
|
cd import &&
|
|
echo initial > file &&
|
|
svn import -m 'initial' . $svnrepo &&
|
|
cd .. &&
|
|
echo initial > file &&
|
|
git update-index --add file &&
|
|
git commit -a -m 'initial'
|
|
"
|
|
test_expect_success 'commit change from svn side' "
|
|
svn co $svnrepo t.svn &&
|
|
cd t.svn &&
|
|
echo second line from svn >> file &&
|
|
poke file &&
|
|
svn commit -m 'second line from svn' &&
|
|
cd .. &&
|
|
rm -rf t.svn
|
|
"
|
|
|
|
test_expect_failure 'commit conflicting change from git' "
|
|
echo second line from git >> file &&
|
|
git commit -a -m 'second line from git' &&
|
|
git-svn commit-diff -r1 HEAD~1 HEAD $svnrepo
|
|
" || true
|
|
|
|
test_expect_success 'commit complementing change from git' "
|
|
git reset --hard HEAD~1 &&
|
|
echo second line from svn >> file &&
|
|
git commit -a -m 'second line from svn' &&
|
|
echo third line from git >> file &&
|
|
git commit -a -m 'third line from git' &&
|
|
git-svn commit-diff -r2 HEAD~1 HEAD $svnrepo
|
|
"
|
|
|
|
test_expect_failure 'dcommit fails to commit because of conflict' "
|
|
git-svn init $svnrepo &&
|
|
git-svn fetch &&
|
|
git reset --hard refs/remotes/git-svn &&
|
|
svn co $svnrepo t.svn &&
|
|
cd t.svn &&
|
|
echo fourth line from svn >> file &&
|
|
poke file &&
|
|
svn commit -m 'fourth line from svn' &&
|
|
cd .. &&
|
|
rm -rf t.svn &&
|
|
echo 'fourth line from git' >> file &&
|
|
git commit -a -m 'fourth line from git' &&
|
|
git-svn dcommit
|
|
" || true
|
|
|
|
test_expect_success 'dcommit does the svn equivalent of an index merge' "
|
|
git reset --hard refs/remotes/git-svn &&
|
|
echo 'index merge' > file2 &&
|
|
git update-index --add file2 &&
|
|
git commit -a -m 'index merge' &&
|
|
echo 'more changes' >> file2 &&
|
|
git update-index file2 &&
|
|
git commit -a -m 'more changes' &&
|
|
git-svn dcommit
|
|
"
|
|
|
|
test_done
|