Это не должно быть проблемой, если разработчик, выполняющий слияние, не помечает конфликт как разрешенный без его рассмотрения. SVN всегда будет предупреждать о конфликте.
Тщательное отслеживание слияний, которое все равно требуется, должно исключить любые проблемы.
Кроме того, небольшой тест показывает, что SVN достаточно умен, чтобы избежать конфликта, если объединяемые изменения уже применены.
Следующий пример (предупреждение, портится с текущим каталогом; требуется Unix-подобные инструменты) имитирует ситуацию, которую вы только что описали.
# Initialize repository
svnadmin create repo
REPO_URL="file:///$PWD/repo"
svn mkdir "$REPO_URL/trunk" "$REPO_URL/branches" -m "Initialize repository structure"
# Add main program
svn co "$REPO_URL" wc1
cd wc1/trunk
cat > main.pl << "EOF"
my $x=0;
print("$x\n");
EOF
svn add main.pl
svn ci -m "Add main.pl"
cd ../..
# Create branch
svn cp "$REPO_URL/trunk" "$REPO_URL/branches/exp" -m "Create \"exp\" branch"
# Branch developer makes a change
svn co "$REPO_URL" wc2
cd wc2/branches/exp
perl -i -wpe 'print("\$x++;\n") if $. == 2' main.pl
svn ci -m "Increment x"
cd ../../..
# Trunk developer makes the same change
cd wc1/trunk
perl -i -wpe 'print("\$x++;\n") if $. == 2' main.pl
svn ci -m "Increment x"
# Merge changes from branch
svn up
svn merge --reintegrate "$REPO_URL/branches/exp" .
cat main.pl