2009-01-03 00:54:05 +03:00
|
|
|
#!/bin/sh
|
|
|
|
#
|
|
|
|
# Generate externals.svndump
|
|
|
|
#
|
|
|
|
|
|
|
|
mkdir temp
|
|
|
|
cd temp
|
|
|
|
|
|
|
|
mkdir project-orig
|
|
|
|
cd project-orig
|
|
|
|
mkdir trunk
|
|
|
|
mkdir branches
|
|
|
|
mkdir externals
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
svnadmin create testrepo
|
|
|
|
svnurl=file://`pwd`/testrepo
|
|
|
|
svn import project-orig $svnurl -m "init project"
|
|
|
|
|
|
|
|
svn co $svnurl project
|
|
|
|
cd project/externals
|
|
|
|
mkdir project1
|
|
|
|
echo a > project1/a
|
|
|
|
svn add project1
|
|
|
|
mkdir project2
|
|
|
|
echo a > project2/b
|
|
|
|
svn add project2
|
|
|
|
svn ci -m "configure externals projects"
|
|
|
|
cd ../trunk
|
|
|
|
# Add an external reference
|
|
|
|
echo a > a
|
|
|
|
svn add a
|
|
|
|
cat > externals <<EOF
|
2009-01-15 08:17:12 +03:00
|
|
|
^/externals/project1 deps/project1
|
2009-01-03 00:54:05 +03:00
|
|
|
EOF
|
|
|
|
svn propset -F externals svn:externals .
|
|
|
|
svn ci -m "set externals on ."
|
|
|
|
# Add another one
|
|
|
|
cat > externals <<EOF
|
2011-03-02 23:06:30 +03:00
|
|
|
# A comment, then an empty line, then a blank line
|
|
|
|
|
2009-01-15 08:17:12 +03:00
|
|
|
^/externals/project1 deps/project1
|
2011-03-02 23:06:30 +03:00
|
|
|
|
2009-05-04 06:42:44 +04:00
|
|
|
-r2 ^/externals/project2@2 deps/project2
|
2009-01-03 00:54:05 +03:00
|
|
|
EOF
|
|
|
|
svn propset -F externals svn:externals .
|
|
|
|
svn ci -m "update externals on ."
|
|
|
|
# Suppress an external and add one on a subdir
|
|
|
|
cat > externals <<EOF
|
2009-05-04 06:42:44 +04:00
|
|
|
-r2 ^/externals/project2@2 deps/project2
|
2009-01-03 00:54:05 +03:00
|
|
|
EOF
|
|
|
|
svn propset -F externals svn:externals .
|
|
|
|
mkdir subdir
|
|
|
|
mkdir subdir2
|
|
|
|
svn add subdir subdir2
|
|
|
|
cat > externals <<EOF
|
2009-01-15 08:17:12 +03:00
|
|
|
^/externals/project1 deps/project1
|
2009-01-03 00:54:05 +03:00
|
|
|
EOF
|
|
|
|
svn propset -F externals svn:externals subdir subdir2
|
|
|
|
svn ci -m "add on subdir"
|
2009-01-15 08:17:12 +03:00
|
|
|
# Test branch with externals
|
|
|
|
svn up
|
|
|
|
cd ../branches
|
|
|
|
svn copy ../trunk branch1
|
|
|
|
svn propdel svn:externals branch1/subdir2
|
|
|
|
svn ci -m 'externals in subtree'
|
2009-01-15 08:17:13 +03:00
|
|
|
# Test branch with externals, removing on copy root
|
|
|
|
svn copy ../trunk branch2
|
|
|
|
svn propdel svn:externals branch2 branch2/subdir2
|
|
|
|
svn ci -m 'externals in subtree, removed on root'
|
2009-01-15 08:17:12 +03:00
|
|
|
cd ../trunk
|
2009-01-03 00:54:05 +03:00
|
|
|
# Suppress the subdirectory
|
2009-01-15 08:17:12 +03:00
|
|
|
svn rm --force subdir
|
2009-01-03 00:54:05 +03:00
|
|
|
svn ci -m 'remove externals subdir'
|
|
|
|
# Remove the property on subdir2
|
|
|
|
svn propdel svn:externals subdir2
|
|
|
|
svn ci -m 'remove externals subdir2'
|
2009-05-04 06:42:44 +04:00
|
|
|
# Kill project2 externals, peg revision should preserve it
|
|
|
|
cd ..
|
|
|
|
svn up
|
|
|
|
svn rm externals/project2
|
|
|
|
svn ci -m 'remove externals project2'
|
|
|
|
cd trunk
|
|
|
|
echo a >> a
|
|
|
|
svn ci -m 'change a'
|
2009-01-03 00:54:05 +03:00
|
|
|
cd ../..
|
|
|
|
|
|
|
|
svnadmin dump testrepo > ../externals.svndump
|