Как удалить рабочую копию, созданную с помощью git-new-workdir, без потери исходного репо? - PullRequest
3 голосов
/ 07 марта 2012

Я использую скрипт git-new-workdir, представленный в разделе contrib базы кода git: https://github.com/git/git/tree/master/contrib/workdir для работы с несколькими ветвями одной и той же кодовой базы одновременно.Это на windows, используя msysgit, а репозиторий - это git svn repo, а не чистый git.У меня нет проблем с созданием рабочих копий с помощью этой команды, говоря:

git-new-workdir original-working-copy new-working-copy branch-name-to-checkout

Но когда меня больше не интересует ветка, и я хочу избавиться от рабочей копии, сделав также rm -rfR new-working-copyшланги оригинал-рабочая копия.

Задним числом это довольно очевидно, учитывая, что git-new-workdir использует жесткие ссылки для совместного использования одного и того же репозитория .git между несколькими рабочими копиями.

Каков хороший способ очистки созданных таким образом рабочих копий, который мне больше не нужен на моей машине?

Ответы [ 2 ]

3 голосов
/ 07 марта 2012

В обычных системах UNIX git-new-workdir использует символические ссылки, чтобы делиться всем с исходным репо, и поэтому вы можете просто rm -rf new-working-copy удалить новый рабочий каталог, и все в порядке.

Понятия не имею, чтоможет отличаться от msysgit, который изменит это.


Оказывается, как отмечено в комментариях, проблема в том, что rm в Windows использует del, который фактически повторяется в символических ссылках.Удаление самой символической ссылки требует rmdir.

1 голос
/ 12 июня 2012

Как и просили в комментариях, вот пакетный файл, который я использую.

cd %1\.git
del HEAD
del config
rmdir hooks
del index
rmdir svn
rmdir refs
del packed-refs
rmdir objects
del remotes
del rr-cache
rmdir info
rmdir logs\refs
del logs\HEAD
rmdir logs
cd ..
rmdir .git
cd ..
...