2013-03-26 6 views
0

hg convert를 사용하여 만든 mercurial의 하위 리포지토리가 있습니다. 약 3 주 동안 사람들이 원래 변환 된 파일의 두 가지 버전을 발견하기 전에 변경 사항을 수정하고 Windows에서 Tortoise를 사용하여 체크인했습니다.Mercurial 백 슬래시 정방향 슬래시 문제

Dir\Project/FileName.ext 
Dir/Project/FileName.ext 

내가 해봤 hg rename, hg forget, hg remove,하지만 우리는 항상 존재 사라 두 파일 또는 두 파일로 끝날 것 같다 때. 케이스 접기 제안을 살펴 봤지만 적용하지 않는 것으로 보입니다.

수정에 대한 제안 사항에 감사드립니다. 만약 우리가 세상의 끝이 아닌 \ 버전에 대한 역사를 잃어 버린다면. 나는이 변환 SVN 저장소에서 발생할 본 적이

감사

+0

두 파일이 모두 디스크에 표시된다는 의미입니까? – wRAR

답변

0

(hgsubversion를 사용하지만 hg convert 같은 문제를 가지고 내기). 내가 그것을 본 적이있는 경우 svn 속성 변경이 분명히 "백 슬래시가 포함 된 파일 이름"(이 아니며, 경로)이 svn에 저장되는 것으로 나타났습니다.

첫 번째 경우 나는 그것이 바로 문제를 일으키는 디렉토리 경로라는 것을 알았습니다. Windows에서 디렉토리 경로를 사용하여 길이가 0 인 파일을 만든 다음 나중에 업데이트 할 수 없었기 때문에 Mercurial이 중단되었습니다. 같은 이름의 디렉토리를 만듭니다.

  1. 새로운 파일로 추적되지 보여줍니다

  2. 백 슬래시 파일 경로를 포함 버전으로 업데이트가 의욕 매니페스트 현재이 포함되어 있기 때문에 :

    나는 이중 항목을 생성 순서가 무언가처럼 기대 경로를 백 슬래시와 함께 사용하지만 작업 디렉토리를 보면 모든 파일 경로를 슬래시로 정규화하므로 매니페스트에 나타나지 않습니다.

  3. 사용자가 "새"파일을 추가합니다.

  4. 이후의 업데이트에서 두 경로는 모두 업데이트되지만 다른 경로는 작업 디렉터리에서 다른 경로를 덮어 씁니다. 운이 좋다면 새 버전이 작업 디렉토리에서 종료되었습니다.

당신은 아마 Windows에서이 문제를 해결할 수 있지만 단일 인용 파일 이름 예를 들어,에 의해 (대소 문자 구분 파일 시스템 또는 다른 UNIX 같은 OS) 리눅스에서 백 슬래시 버전을 제거 할 수 있어야한다

hg rm 'Dir\Project\FileName.ext'. Linux에서이 문제점이있는 개정판으로 갱신하는 경우 작업 디렉토리의 루트에 실제 이름이 'Dir\Project\FileName.ext' 인 파일이 있어야합니다.

백 슬래시 버전이 제거해야하는 버전인지 확인하십시오. 수동으로 병합하지 않아도 원하는 결과를 얻을 수 있습니다.