Windows 용 UnionFS와 유사한 파일 시스템


12

Windows 7의 UnionFS와 같은 기능을 찾고 있습니다. 유스 케이스 : 읽기 전용 디렉토리에 깨끗한 코드 작업 디렉토리가 있고 컴파일 된 바이너리를 논리적으로 동일한 위치에 저장하지만 실제로는 통합 파일 시스템에서 컴파일합니다. 다른 디렉토리.

라이브러리는 같은 방식 으로 Windows 에서 UnionFS 의 답변으로 받아 들여지더라도 사실상 폴더를 병합 합니다. 최상위 디렉토리 만 한 곳에 표시합니다.

코드 자체는 거대합니다 (2GB의 데이터). 내 빌드 서버의 모든 빌드마다 코드를 복사하지 않으려 고합니다.


아 죄송합니다. :-/ 나는 똑같은 문제를 직접 해결하려고 노력하고 있으며 충분히주의 깊게 읽지 않았습니다. 내 의견을 삭제하겠습니다. 나는 거의 Windows 플랫폼에 익숙하지 않습니다. :-/
Omnifarious

답변:


2

심볼릭 링크를 사용하여 이것을 속일 수 있습니까? http://en.wikipedia.org/wiki/NTFS_symbolic_link 정확한 질문에 답하지는 않지만 주어진 사용 사례를 해결할 것이라고 생각합니다.


어떻게되는지 모르겠어요 ... 설명해 주시겠습니까?
liori

빌드 트리가 구성되는 방식을 모르지만 그것이 src, src / bin, src / obj와 같은 것으로 가정하면 bin 및 obj가 코드를 원하는 곳으로 심볼릭 링크가 될 수 있습니다. 빌드에서 해당 폴더를 완전히 삭제하지 않는지 확인하십시오. 또는 src를 "읽기 전용"에 대한 심볼릭 링크로 설정 한 다음 읽기 전용으로 링크를 되 돌리십시오. 어느 쪽이든 당신은 그것을 작동시킬 수 있어야합니다. 내가 당신의 시나리오를 완전히 놓치지 않는 한.
MikeBaz-MSFT

빌드 절차를 제어하지 않으며 어디에서나 쓸 수 있습니다.
liori

@liori :이 사용 사례의 경우, 디렉토리를 재생성하고 모든 파일 (예 : cd SOURCE; find -type d -exec sh -c 'cd BUILDDIR && mkdir "$@"' _ {} +; find -type f -exec sh -c 'mklink "$1" "BUILDDIR/$1"' _ {} \;Windows와 유사 하거나 일부)에 대한 심볼릭 링크를 만들 수 있습니다 .
Gilles 'SO- 악마 그만'

@Gilles : 복사가 그렇게 나쁘지 않다고 생각하게 만들었습니다 ... (외에 대답으로 만들 수 있습니까?)
liori

2

심볼릭 링크를 사용하여 가난한 사람의 unionfs를 만들 수 있습니다. 소스의 디렉토리 구조를 재현하지만 파일에 대한 링크 (기호 또는 하드)를 만듭니다. 빌드 시스템이 소스 파일을 수정하려고 시도하지 않는 한 이것은 목적에 적합해야합니다.

GNU cp를 사용하면 cp -al또는 처럼 쉽습니다 cp -as. 그러나 Windows 링크를 이해하는 GNU 도구 포트가 있는지 모르겠습니다.

mklink 명령을 호출해야하는 경우 POSIX 도구 (경고, 브라우저에 직접 입력)를 사용하여 수행 할 수 있습니다.

cd SOURCE
find -type d -exec sh -c 'cd BUILDDIR && mkdir "$@"' _ {} +
find -type f -exec sh -c 'mklink "$1" "BUILDDIR/$1"' _ {} \;

Powershell과 관련된 기본 Windows 방법이 있다고 생각하지만 그 모양이 무엇인지 모릅니다. Windows에서 포크 속도가 느려지고 위의 명령이 많이 필요하기 때문에 디렉토리 트리가 크고 디스크가 빠른지 조사해 볼 가치가 있습니다.


기본 방법은 sysinternals for /R %BUILDDIR% %F in (*.*) do @junction X:%pnxF %Fjunction도구를 사용하는 것과 같습니다.
MSalters

@MSalters 심볼릭 링크는 이제 Windows 고유의 것입니다. NTFS 접합은 동일 하지 않습니다 .
Nick Whaley

@NickWhaley : 사실, 정션은 본질적으로 하드 링크입니다.
MSalters

2

예, 최신 버전의 Windows 가 있지만 사용 방법을 모르겠습니다.


"UWF는 Standard 8의 새로운 기능이며 Windows 8의 일부로 사용할 수 없습니다." 그렇지 않은 경우 최종 사용자 Windows 버전에서 사용할 수 있습니다.
Daniel B


다른 경우에는 유용하지만이 경우에는 유용하지 않습니다. 알고 가치가 있습니다.
Robert Wm Ruedisueli

1

나는 이것을 찾았지만 그것이 얼마나 잘 작동하는지 모르겠다.


Google 코드에 보관 된 프로젝트는 유지 관리되지 않습니다. 어딘가에 업데이트 된 버전을 찾고 싶을 수도 있습니다. 아마도 포크.
Robert Wm Ruedisueli
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.