К сожалению, я думаю, что реальный ответ здесь заключается в том, что ClearCase справляется с этой ситуацией намного лучше, чем Subversion. С помощью subversion вам необходимо ветвиться что угодно , но ClearCase допускает своего рода идею "ленивого ветвления", которая означает, что разветвленная ветвь только определенной группы файлов, остальные все еще следуют за стволом (или какой бы ветвью вы не занимались) уточните).
Другие решения, представленные здесь, на самом деле не работают так, как вы предполагаете, они просто копируют файл по другому пути. Теперь вы должны сделать странные вещи, чтобы фактически использовать этот файл.
Эм, извините. Это был не очень хороший ответ. Но нет хорошего решения этого с Subversion. Его модель - филиал и слияние.
Редактировать: ОК, поэтому подробно остановимся на том, что сказал crashmstr. Вы могли бы сделать это:
svn cp $REP/trunk/file.h $REP/branched_files/file.h
svn co $REP/trunk
svn switch $REP/branched_files/file.h file.h
Но вау !, это склонно к ошибкам. Всякий раз, когда вы делаете SVN-ST, вы увидите это:
svn st
S file.h
Немного шумно. И когда вы захотите разветвить несколько файлов или модулей в большом репозитории исходного кода, это станет очень грязным.
На самом деле, здесь, вероятно, есть достойный проект для имитации чего-то вроде разветвленных файлов ClearCase со свойствами svn и переключения, написания оболочки вокруг стандартного svn-клиента bog, чтобы справиться со всем этим беспорядком.