Новый код вышел AWOL, оставил старую ревизию. Куда это делось? - PullRequest
2 голосов
/ 03 января 2011

Я только что открыл проект, над которым в последний раз работал две недели назад, и обнаружил, что моя рабочая версия отстает на несколько ревизий (с использованием Mercurial через Bitbucket).Последние скомпилированные сборки на моем компьютере разработчика обновлены на 100%, но в моих локальных и удаленных репозиториях кода отсутствует весь новый код, который я скомпилировал на своем компьютере разработчика в последние сборки.

Разбирая последнюю компиляцию (месячной давности), используя .NET Reflector * * * * Red Gate , я вижу весь мой новейший код, но ни один из этого сейчас нигде нельзя найти на моей машине разработчика,или в любом из моих репозиториев.Как будто весь мой код ушел назад в будущее .Возможно ли, что я случайно отменил и переопределил какой-то код из моего удаленного репозитория, и нет никакого следа за ним?

Я не должен был зафиксировать свои последние изменения, но, конечно, они все еще должны быть в моей рабочей копии?Я не знаю ни о каких откатах системы.Я запускаю Visual Studio 2010 на своем компьютере с Windows 7, и я уверен, что это не ошибка Mercurial, но есть ли какая-то функциональность, о которой я не знаю?Как это возможно?

1 Ответ

3 голосов
/ 03 января 2011

Не-коммит всегда плохая идея, коммит - это то, как вы говорите «это что-то», а не «это закончено».

Каков выход hg summary? Возможно ли, что у вас hg update d до прошлой ревизии - если это так, все новые вещи все еще находятся в репо, а не в рабочем каталоге. Mercurial никогда не выбрасывает зафиксированные изменения и избавляется от незафиксированных изменений, только если вы используете опцию, например --clean, при обновлении. Если вы сделали hg revert, у вас будет .orig файлов резервных копий, если вы не сделали --no-backup.

Короче говоря, Mercurial не будет отбрасывать изменения, если вы не будете усердно работать над этим, поэтому либо они все еще там, либо это было что-то внешнее.

...