2014-07-20 5 views
10

에 심볼릭 링크를 따라나는 리눅스 디렉토리가 (및 윈도우 체크 아웃이 필요하지 않습니다) SVN

/home/me/projects/project1 

을이 프로젝트에서, 나는 SVN은 (1.8.8)는 심볼릭 링크 "링크 1"을 따라야합니다 :

/home/me/projects/project1/link1/<some_directories_and_files> 

그러나 SVN이 날 그렇게 못하게, 그냥 link1하지만 내용을 추가 할 수 있습니다.

svn add link1/* 
svn: E145001: Can't schedule an addition of '/home/me/projects/project1/link1/first_directory' below a not-directory node 

내가 하드 링크에 링크 1 변환 시도하지만 난 할 수 없어 그 중 하나 : 나는 그것의 내용을 추가하려고하면 오류가 발생합니다

ln /path/to/my/linked/directory link1 
ln: ‘/path/to/my/linked/directory’: hard link not allowed for directory 

어떤 생각? 이런 종류의 구성을 어떻게 처리합니까?

project1/ 
project1/link1 -> ../../some/where/else 

당신이 svn add link1 간단한을 할 경우는 심볼릭 링크의 Subversion 저장소에 항목,하지만 추가 : 난 그냥 문제를 이해한다면 간단한 svn commit

답변

7

에서 /home/me/projects/project1 모든 것을 저지 할 필요가, 당신은 당신이 성취하고자하는 것은 그 나무 속으로 어딘가에 물건을 가져 오는 것입니다.

이 경우에는 잘못된 방향으로 싸우고 있습니다. 실제 파일과 디렉토리를 link1 아래에 만들고 대상 위치를 link1 디렉토리로 심볼릭 링크해야합니다. 그것은 그 문제에 대한 간단한 해결책이 될 것입니다.

또 다른 해결책은 자신의 위치에 ../../some/where/else svn 위치를 만들고 링크 1을 해당 위치에 대한 외부 정의로 만드는 것입니다. 기본 디렉토리에서 커밋 할 때 정보를 저장하는 동시에 외부에서 커밋됩니다. 그러나 다른 위치가 동기화되어 유지되도록하려면 저장된 데이터와 동일한 버전으로 업데이트해야합니다. 내 경우

, 내 바탕 화면에 내가 설정 디렉토리가 :

$HOME/settings 

이 인에서 .bashrc, .profile, .vimrc, .vim 등 파일 및 폴더를 포함하는 디렉토리의 체크 아웃 된 사본 svn repo. 내 모든 프로필 파일과 디렉토리는이 폴더에 대한 심볼릭 링크 였으므로, 예를 들어 .profile ->settings/.profile 등입니다. 변경하면 svn 트리에 반영되어 다시 볼 수 없게됩니다. 다른 시스템으로 이동하면 설정 정보가 손실됩니다.

당신이 정말로 SVN은 (그것이 나쁜 일 ™ 것이기 때문에 당신은 디렉토리 하드 링크를 만들 수 없습니다) 하드 링크로 심볼릭 링크를 따르십시오, 당신은 그것을 짓도록 SVN 클라이언트 소스를 해킹 할 것이다 무엇 너는 원했다. 하지만 이것은 유지 보수의 악몽이 될 것입니다.

당신 멀리 바인드로 심볼릭 링크를 만들기로받을 대상에 직접 마운트 지점,하지만 그것은 자신의 문제의 한 수 - 당신은이 작업을 수행하려면 루트가 될 필요가있을 것이다, 그것은 재미 항목을 떠나는 끝나는/proc/mounts를 사용하여이를 수행하십시오.

mount --bind /absolute/path/to/some/where/else project1/link1 
+0

위 답변입니다.나는 지금 당장 간단한 해결책을 제시 할 것이다. – Cyrille

+0

아, 방금 왜 이런 방식으로 작업했는지 기억하고 있습니다 (작업 복사본 내부의 외부 디렉토리에 대한 심볼릭 링크).이 디렉토리에 파일을 쓸 수 있으려면 www- 데이터 사용자가 필요했습니다. 내 홈 디렉토리의 권한을 작업 복사본까지 모두 변경하고 싶지 않기 때문에 대체 솔루션을 탐색해야 할 것입니다 ... – Cyrille

+0

LOL, Pete, symlink가 나를 데려왔다 고 생각하니? ;-) 곧 svn 그것을 옮기자! – gatopeich