Использование:
svn cp --parents . ^/trash-stash/my-stash
Он создаст ветку из текущего местоположения и текущей ревизии, а затем зафиксирует изменения в рабочей копии в этой ветке, не переключаясь на нее.
использование: копировать SRC [@REV] ... DST
SRC и DST могут быть либо путем к рабочей копии (WC), либо URL:
WC -> URL: immediately commit a copy of WC to URL
Обратите внимание, что изменения в рабочей копии не будут автоматически отменены (cp
это просто CoPying изменения в новую ветвь), и вам придется отменить их вручную.
Чтобы восстановить изменения, вы можете просто объединить изменения из вновь созданной ветви в вашу рабочую копию.
svn merge --ignore-ancestry ^/trash-stash/my-stash -c <commited revision>
--ignore-ancestry
используется для того, чтобы не обновлять информацию о слиянии в рабочей копии.
Использование:
svn ls -v ^/trash-stash/
чтобы увидеть, что у вас на пути к тайнику. Принятые изменения также печатаются.
Если вам больше не нужен тайник, просто запустите:
svn rm ^/trash-stash/my-stash
Это решение лучше, чем использование патча, в том случае, если новые изменения в рабочей копии или в текущей ветке конфликтуют с изменениями в тайнике, вы можете разрешить конфликты средствами svn, тогда как patch
в некоторых случаях просто не удастся или даже применить патч неправильно.