Вернуть рекурсивный 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

Я думаю, это должно работать в большинстве случаев. В любом случае, я предлагаю создать резервную копию (просто скопируйте весь проект), прежде чем делать это, чтобы убедиться, что вы не потеряете ни одну из своих работ.

Другие вопросы по тегам