2013-04-28 3 views
3

У было довольно большое решение с большим количеством кода здесь. Из-за некоторых проблем с TFS я хотел создать новый «чистый» репозиторий. Я удалил отображение в старый репозиторий и попытался создать новое сопоставление. Это привело к ошибке, что уже было сопоставление с моим решением. Я отправился в Source Control Explorer ->Workspaces и удалил отображение в мое решение. После этого я смог сопоставить свой новый репозиторий с моим решением.TFS удалил мои файлы при смене картографирования

Но когда я проверил свой жесткий диск, у меня почти был сердечный приступ: TFS удалил ВСЕ мои файлы кода! Каталоги и зависимости все еще были там, но все мои файлы проекта, файл моего решения и весь код пропали!

Пожалуйста, StackOverflow, помогите мне здесь! Это большая работа, которая в настоящее время нет, и я действительно отчаянно нуждаются в его обратно :(

Edit: Я в настоящее время пытается восстановить свои файлы с несколькими инструментами восстановления файлов (например, Recuva), но ни один из них можно найти любые удаленные изменения, но файлы действительно исчезли, поиск в Windows их не находит, и они также не скрыты. Может ли кто-нибудь сказать мне, почему это так? Являются ли файлы по-прежнему на моем SSD?

+0

Корзину? Копировать перед удалением старого сопоставления? Резервные копии? –

+2

В корзине ничего нет, не создается копия файлов, потому что я предполагал, что TFS не будет так больно, чтобы просто удалить мои файлы. –

+0

Какая версия TFS? –

ответ

3

Если вы проверили все, прежде чем удалили отображение. Источник почти в репозиториях. Но если он уже не извиняется :(

+0

На самом деле я помню, как делал чек, прежде чем я изменил отображение, но я не могу найти его на сервере. –

5

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

Таким образом, если вы изменили отображение рабочей области (например, измените местоположение вашей копии кода из папки A в папку B), то, что вы говорите системе управления источниками, «пожалуйста, заберите копию кода, который является в местоположении A, и поместите его в B ". Вот почему он удалил все «ваш» код. Это не был ваш «код», это была копия кода сервера - вы попросили его разместить его где-то еще на своем ПК ... так оно и было.

Однако, если вы отредактировали какой-либо код в своей рабочей области, файлы были бы извлечены, и в этом случае TFS могла бы знать, что у вас есть ожидающие изменения, и он не должен удалять эти файлы - это должен был сообщить об ошибке, поскольку вы пытались изменить отображение рабочей области, которое включало ожидающие изменения.

Единственный способ, которым это не произошло, - это вручную изменить файлы для записи и внести изменения в них вне Visual Studio/TFS, чтобы TFS не знала, что вы внесли изменения. Если вы «тайно» изменили некоторые файлы, TFS, возможно, подумали, что они остались без изменений и, следовательно, навсегда удалили их. Эти файлы могут не отображаться в инструментах восстановления файлов, потому что, попросив TFS переместить рабочую область, вы получили ее для удаления файлов, а затем сразу же повторно их получите (в новую папку), которая почти наверняка перезаписала бы данные удаленной файлы.

Если ваши изменения, возможно, были проверены, вы можете найти их следующим образом: перейдите в свой проект команды в виде управления источником TFS. Щелкните правой кнопкой мыши проект и выберите опцию «Просмотр истории». Это отобразит все проверки в проекте в обратном историческом порядке - если вы зарегистрировались, тогда вы должны увидеть свои проверки здесь. (Вы можете дважды щелкнуть любую запись набора изменений в истории, чтобы просмотреть список файлов, которые были изменены, и если вы щелкните правой кнопкой мыши по любому файлу, вы можете «Сравнить ..."Видеть различия, который показывает, что именно изменения были сделаны)

Если изменения не в истории оформленного ввода, то я боюсь, что вы потеряли их.

Вы, наверное, уже узнал об этом, но очень важно, чтобы научиться использовать инструменты, такие как контроль источника должным образом - они являются полезными и мощными инструментами, но они могут быть опасны, если вы не понимаете, как они работают

+0

Спасибо за сообщение. К сожалению, изменения не в моей истории, поэтому они исчезли. Я не знаю, почему TFS удалил мои файлы, не спрашивая меня, я не выполнял никаких изменений за пределами VS. –

+0

То же самое случилось со мной сейчас. Двухнедельная тяжелая работа ушла на мусор! TFS должна была предупредить меня раньше или хотя бы отправить элементы в корзину! Не могу поверить, что это происходит! – Shimmy

+1

Настало время напоминать о том, что вы теряете работу, но наилучшей практикой для контроля версий является то, что вы часто проверяете свою работу (по крайней мере один или два раза в день), чтобы свести к минимуму объем работы, которую может разрушить катастрофа. В TFS вы можете использовать ветви и полки, чтобы вы могли сохранить свой код таким образом, не заставляя его «жить» на сервере. Еще одна хорошая идея для опытного разработчика параноидальных приложений (a.k.a.) - взять ручную резервную копию вашей папки кода, прежде чем попросить систему управления версиями внести какие-либо изменения. –

-1

Извините за потери

ТФС Didn.. Вы ничего не удаляете. Вы просто не проверяли его. Если TFS «удалил» ваш код, вы сможете увидеть свой код в истории в проводнике исходного кода. Вы увидите, что есть набор изменений с операциями «Удалить» против вашего кода.

Затем вы сможете отменить этот набор изменений и получить весь свой код.

+0

Удаленные файлы TFS в локальной папке. Система управления версиями никогда не должна удалять код, который не проверен. Он должен показывать конфликт. –

Смежные вопросы