2011-01-03 2 views
2

저는 방금 2 주 전에 마지막으로 작업 한 프로젝트를 열어서 제 작업 버전이 Bitbucket을 통해 Mercurial을 사용하여 여러 개정판을 발견했습니다. 최신 내 컴퓨터에 어셈블리가 100 % 최신 버전이지만 로컬 및 원격 코드 저장소에 새 코드가 모두 누락되어 있습니다.이 코드는 내 컴퓨터에서 최신 어셈블리로 컴파일되었습니다.새 코드가 AWOL이되어 오래된 개정판을 남겼습니다. 어디 갔지?

Red Gate의 .NET Reflector을 사용하여 최신 컴파일을 디스 어셈블하면 모든 최신 코드를 볼 수 있지만 그 중 아무 것도 내 dev 컴퓨터 나 다른 저장소에서 찾을 수 없습니다. 모든 코드가 으로 돌아가는 것과 같습니다.. 실수로 원격 저장소에서 일부 코드를 되돌리고 덮어 쓸 수 있습니까? 그 흔적이 없습니다.

필자는 최근 변경 사항을 저 지르지 않았 음에 틀림 없으나 여전히 작업 사본에 있어야합니다. 나는 어떤 시스템 롤백도 모르고있다. 내 Windows 7의 개발 상자에서 Visual Studio 2010을 실행하고 이것이 Mercurial의 잘못이 아니라고 확신하지만, 내가 인식하지 못하는 기능이 있습니까? 이것이 어떻게 가능한지?

답변

3

커밋되지 않음은 입니다. 항상입니다. 나쁜 생각인데, "이것이 끝났습니다."가 아니라는 말입니다.

hg summary의 출력은 무엇입니까? 과거 버전에 hg update d를 적용 할 수 있습니까? 그렇다면 모든 새로운 내용은 여전히 ​​작업 디렉토리가 아닌 레포에 남아 있습니다. Mercurial은 커밋 된 변경 사항을 버리지 않으며 업데이트시 --clean과 같은 옵션을 사용하면 커밋되지 않은 변경 사항 만 제거합니다. hg revert을 수행 한 경우 --no-backup을 수행하지 않으면 백업 파일이 .orig입니다.

간략하게 말하자면 Mercurial은 열심히 노력하지 않으면 변경 사항을 버리지 않으므로 여전히 남아 있거나 변경된 사항이 있습니다.

+0

YYEEEEEEESSS !!!! 내 최신 버전은 .orig 파일에 있습니다. 현재 (오래된) 버전을 (최신) .orig 파일로 대체하기 위해 Mercurial에 어떻게 말합니까? Jon Skeet이 당신에게 신선한 커피를 가져다 줄 것입니다. –

+0

Nevermind는'for/f % i in ('dir/s/b * .orig')를 사용하여 작업 카피를 .orig 파일로 대체하기 위해 @copy % i % ~ dpni를 사용하여 그것을 정렬했다. –

+0

다행 이었기 때문에 기쁩니다. 습관적으로 커밋하지 않는 경우 되돌리기에주의하십시오. 또는 더 나은 아직 강박 관념. :) –