[OS X] 맥에서 git의 내용 중에 특정 폴더를 하드링크하기 Develop Tip

맥에서 git을 이용하여 잘 사용하고 있습니다.
그러다가 최근 다음과 같은 요구 사항이 생겼습니다.

~/work/common/util
~/work/common/util/__init__.py
~/work/common/util/myfile.py
~/work/common/util/myjson.py

위와 같이 공통으로 사용하는 폴더가
~/work/common/util
에 있다고 가정합니다.

이제는 다음과 같은 실제 git 개별 프로젝트가 존재합니다.

~/work/proj_A
그런데 proj_A 의 하위 폴더 util이 
~/work/common/util 폴더를 가리키게 하고 싶습니다.

물론 ~/work/proj_A
폴더에서

$ cd ~/work/proj_A
$ ln -s ../common/util util
라고 심볼릭 링크를 걸어주고 개발하다가
git 로 넣어주었는데 문제는 link정보 파일이 올라간다는 것이었습니다.

조금 더 찾아보니,

~/work/proj_A/.git/config 파일 내
[core]
symlinks = true

와 같이 설정하고,

$ git config --get core.symlinks
true

라고 되어 있으면 된다고 하나,
아마도 폴더 자체를 따라가는 것은 안되는 듯 합니다.

결국은 다음과 같이 하여 해결하였습니다.

기존에 symbolic link는 삭제하였습니다.

다음과 같이 하여 하드링크 프로그램 (hln 설치)

$ brew install hardlink-osx

소스는,

위의 위치에 있으며, 해당 소스를 보면 정말 작게도,

libc의 link()를 하는 것입니다. (-u 옵션으로 unlink 하네요)

이제는 

$ cd ~/work/proj_A
$ hln ../common/util util

과 같이 하드링크를 하고 git add/commit/push 하면
잘 관리가 되었습니다.


어느 분께는 도움이 되셨기를...




덧글

댓글 입력 영역

구글애드텍스트