문제

여러 가지 이유로, 내가 가지고있는 일부 파일의 표준 소스는 저장소의 작업 사본이 될 수 없습니다 (Subversion Server는 접근 할 수없는 방화벽 뒤에 있으며 데이터가 선호하는 구조의 파일 시스템에 기본적으로 존재하지 않습니다. ). 따라서 데이터를 다운로드하고 디렉토리 구조를 생성 한 다음 SharpSVN을 사용하여 결과를 저장소로 가져 오는 도구를 작성했습니다. 이것은 작동합니다… 처음입니다. 물론 두 번째로, 그 이름의 디렉토리는 이미 저장소에 이미 존재하며 다시 가져올 수 없습니다.

대신, 나는 할 수있다 :

  1. 디렉토리 삭제, 그 다음에 수입. 나는 이것을 테스트하지 않았지만 어리석은 소리를 제외하고는 새로운 파일의 개정 내역을 완전히 다른 것으로 삭제할 것입니다.
  2. 디렉토리가 존재하는지 확인하고 확인하고 정식 소스에 더 이상 존재하지 않는 파일을 원격으로 삭제 한 다음 나머지를 교체하고 커밋하십시오. 이것은 아마도 효과가 있지만 오류가 발생하기 쉬우 며 불필요하게 어렵습니다.

파일을 삭제하면 파일을 삭제하는 것과 같은 방식으로 파일을 표시 할 것이라는 내 가정이 맞습니까? 다른 파일? 두 번째 접근 방식보다 쉬운 방법이 있습니까?

도움이 되었습니까?

해결책

1), 개정 내역은 삭제되지 않지만 새 파일은 이전 파일과 완전히 관련이없는 것으로 취급됩니다. 그래도 오래된 파일을 다시 가져올 수 있습니다.

2), 그것은 권장되는 방법입니다. 그러나 'SVN이 기존 파일을 삭제하고 새 파일을 추가 한 후 커밋하기 전에 새 파일을 추가해야합니다.

그러나 svn-load-dirs.pl 스크립트 사용을 고려해야합니다. 이에 대해 이에 대해 읽을 수 있습니다.공급 업체 지점".

다른 팁

전복은 파일에 느슨한 연결이 있습니다. 폴더 내부의 파일의 경우 쉽게 GET/업데이트를 수행하고 대규모 변경 (삭제, 교체 또는 파일 추가)을 수행 한 다음 차이점을 커밋 할 수 있습니다. 해당 파일 레벨 동작은 전형적인 전복 사용입니다.

디렉토리는 약간 다릅니다. Subversion은 저장소 정보를 폴더 레벨에 저장합니다. 따라서 새 폴더를 만들면 자동으로 전복과 연결되지 않습니다. (TortoisesVN과 같은 것을 사용하면 많은 것을 처리해야합니다.)

생성 프로세스 중에 디렉토리를 추가하고 삭제하려는 경우 파일 자체와 약간 다른 문제가 발생합니다. 그러나 명령 줄, SharpSVN, TortoisesVN 또는 기타 유사한 도구를 통해 여전히 목표를 달성 할 수 있습니다.

디렉토리를 덮어 쓸 수 없으므로 .svn 디렉토리 및 모든 저장소 정보를 잃어 버리면 파일을 복사해야하지만 새 디렉토리 만 생성해야합니다. 이것이 내가하는 방법입니다. Subversion Working 사본 내에서 업데이트하려는 방법입니다.

(cd <newdirectory> ; tar -cf - * ) | tar -xf -

Unix-Y 시스템이 필요합니다. 함께 작동해야합니다 Cygwin, Windows가 시스템 수준에서 폴더를 덮어 쓰는 것과 함께 특히 기괴한 일을하지 않는 한.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top