Как вернуть файл, удаленный моим SVN-клиентом? - PullRequest
1 голос
/ 20 ноября 2008

Я только что обновил из SVN, и один из моих файлов теперь исчез ... конечно, он не был зафиксирован, потому что я знал, что мне нужно сначала обновить + объединить. Я думаю, что возможно парень переименовал файл, что означает, что мой SVN-клиент удалил мой файл.

Я использую VC ++ 2008 и Visual SVN.

Помогите ... и для справки, как этого избежать? Разве вы не должны обновляться до совершения?

Ответы [ 4 ]

1 голос
/ 20 ноября 2008

Если вы ищете файл в VS, вполне вероятно, что файл все еще существует в вашем каталоге, но на него больше нет ссылок в проекте (поскольку VS покажет вам только файлы в вашем проекте). Если файл был переименован, вероятно, вы больше не сможете его найти в Visual Studio. Я бы на самом деле проверил каталог, где существовал файл.

Если его там нет, вы можете получить старый файл из репозитория, щелкнув по содержащему его каталогу и вернувшись к предыдущей ревизии, содержащей файл (удаление файла - это операции над каталогом).

Ваша локальная копия файла не должна быть удалена, если есть изменения. Такие вещи раздражают, но, надеюсь, не так часто (как часто вы переименовываете файлы?). Конечно, это именно то, почему вы должны обновить перед фиксацией. В этом случае вам нужно вручную объединить изменения, внесенные в старый файл, в новый файл и убедиться, что он все еще компилируется.

0 голосов
/ 22 ноября 2008

Это точно случилось со мной несколько недель назад. Я устал, когда делал «обновление» вместо «фиксация». Моя работа исчезла, я мог восстановить ее с помощью Undelete tool .

0 голосов
/ 22 ноября 2008

Ответы показывают, как восстановить файл, но более важна вторая часть вашего вопроса: как избежать таких вещей?

Для этого вы можете заблокировать файлы. Это означает, что вы хотите спокойно работать с этим файлом. SVN не позволит любому другому пользователю зафиксировать заблокированный файл. Это также включает удаление.

0 голосов
/ 20 ноября 2008

SVN должен сделать резервную копию файла, если вы его изменили. Проверьте, есть ли файл, который начинается с "." и имеет ревизию где-то в имени в каталоге, где должен быть измененный файл.

Если это не так, проверьте настройки в Visual SVN. Или, может быть, Visual SVN не делает этого. Попробуйте вместо TortoiseSVN .

...