Вернуть рекурсивный SVN пропсет SVN: игнорировать
Я случайно побежал
svn propset svn:ignore "..." . -R
в корневом каталоге огромного хранилища Subversion. Раньше многие папки имели свои индивидуальные свойства svn: ignore.
Я хотел бы восстановить состояние перед запуском этой команды "svn propset". До сих пор я не совершал изменения. Что вы предлагаете делать?
Я подумал, что я мог бы просто зафиксировать изменения, а затем отменить коммит, используя слияние. Есть ли возможные риски, о которых я не думаю? Есть ли лучший способ отменить это, даже не совершая?
Примечание: у меня также есть некоторые локальные изменения, которые еще не зафиксированы.
2 ответа
Если у вас есть только изменения содержимого файла, я бы скопировал всю структуру каталогов, кроме папок.svn, в безопасное место, вернул все обратно и затем скопировал обратно содержимое файла.
Это вызовет проблемы, если у вас есть переименования в вашей рабочей копии.
Вы можете создать патч (без свойств) ваших локальных изменений. Затем отмените все, чтобы все ваши изменения в файлах и свойствах были отменены. Затем примените патч снова.
svn diff --show-copies-as-adds --ignore-properties > filechanges.patch
svn revert -R *
svn patch filechanges.patch
Я думаю, это должно работать в большинстве случаев. В любом случае, я предлагаю создать резервную копию (просто скопируйте весь проект), прежде чем делать это, чтобы убедиться, что вы не потеряете ни одну из своих работ.