@Aredridel 의 게시물이 가장 가깝다고 생각 하지만 조금 더 있습니다. 여기에 추가하겠습니다. 건에서, svn
당신은 환매 특약의 하위 폴더에있어, 그리고 당신이 할 경우 :
/media/disk/repo_svn/subdir$ svn export . /media/disk2/repo_svn_B/subdir
그런 다음 svn
개정 관리중인 모든 파일을 내보낼 것입니다 (새로 추가되거나 수정 된 상태 일 수 있음)-해당 디렉토리에 다른 "정크"가있는 경우 ( .svn
여기서는 하위 폴더를 세지 않지만 .o
파일 과 같이 보이는 항목은 계산하지 않습니다 ) , 그것은 것입니다 하지 내보낼 수; SVN 저장소에 등록 된 파일 만 내 보냅니다. 나를 위해, 하나의 좋은 일이 수출 또한 한 지역 변경 파일이 포함되어 있다는 것입니다 하지 아직 커밋을; 또 다른 좋은 점은 내 보낸 파일의 타임 스탬프가 원본 파일의 타임 스탬프와 동일하다는 것입니다. 또는, 같은 svn help export
풋 그것은 :
- 수정 된 REV (있는 경우), WORKING (있는 경우), PATH2로 지정된 PATH1에 지정된 작업 사본에서 클린 디렉토리 트리를 내 보냅니다. ... REV를 지정하지 않으면 모든 로컬 변경 사항이 유지됩니다. 버전 관리 대상이 아닌 파일은 복사되지 않습니다.
git
타임 스탬프가 유지되지 않도록 하려면 이 명령의 출력 ( git
선택한 리포지토리의 하위 폴더에 있음 )을 비교하십시오.
/media/disk/git_svn/subdir$ ls -la .
... 그리고 :
/media/disk/git_svn/subdir$ git archive --format=tar --prefix=junk/ HEAD | (tar -t -v --full-time -f -)
... 어쨌든 git archive
보관 된 파일의 모든 타임 스탬프가 동일하게됩니다. git help archive
말한다 :
git archive는 트리 ID가 주어 졌을 때와 커밋 ID 또는 태그 ID가 주어 졌을 때 다르게 작동합니다. 첫 번째 경우 현재 시간은 아카이브에있는 각 파일의 수정 시간으로 사용됩니다. 후자의 경우 참조 된 커밋 개체에 기록 된 커밋 시간이 대신 사용됩니다.
...하지만 분명히 두 경우 모두 " 각 파일의 수정 시간"을 설정합니다 . 이에 되지 해당 파일의 실제 타임 스탬프를 보존 !
따라서 타임 스탬프를 유지하기 위해 여기에는 bash
다소 복잡하지만 실제로는 "한 줄짜리"스크립트가 있습니다. 아래에는 여러 줄로 표시됩니다.
/media/disk/git_svn/subdir$ git archive --format=tar master | (tar tf -) | (\
DEST="/media/diskC/tmp/subdirB"; \
CWD="$PWD"; \
while read line; do \
DN=$(dirname "$line"); BN=$(basename "$line"); \
SRD="$CWD"; TGD="$DEST"; \
if [ "$DN" != "." ]; then \
SRD="$SRD/$DN" ; TGD="$TGD/$DN" ; \
if [ ! -d "$TGD" ] ; then \
CMD="mkdir \"$TGD\"; touch -r \"$SRD\" \"$TGD\""; \
echo "$CMD"; \
eval "$CMD"; \
fi; \
fi; \
CMD="cp -a \"$SRD/$BN\" \"$TGD/\""; \
echo "$CMD"; \
eval "$CMD"; \
done \
)
컨텐츠를 "현재"디렉토리 (위의 /media/disk/git_svn/subdir
)로 내보내는 것으로 가정하고 내보내는 대상이 다소 불편하지만 DEST
환경 변수에 있다고 가정 합니다. 이 스크립트로; 당신은DEST
위 스크립트를 실행하기 전에 직접 디렉토리를 직접 .
스크립트가 실행 된 후에는 다음을 비교할 수 있어야합니다.
ls -la /media/disk/git_svn/subdir
ls -la /media/diskC/tmp/subdirB # DEST
... 그리고 버전 관리하에있는 파일에 대해 동일한 타임 스탬프가 표시되기를 바랍니다.
이것이 누군가에게 도움이
되기를 바랍니다 , 건배!