Git ๋ฐฑ์๋( pip.vcs.git
)๋ Git์ด $CWD
๋ฅผ ์ ์ฅ์ ๋๋ ํ ๋ฆฌ๋ก ์ฌ์ฉํ๋ค๋ ์ฌ์ค์ ์์กดํฉ๋๋ค. ๋ฌธ์ ๋ $GIT_DIR
/ $GIT_WORK_TREE
ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฎ์ด์ธ ์ ์์ผ๋ฉฐ location
์์ ์๋ณ๋ ์ ์ฅ์ ๋์ ํญ์ ๋์ผํ ์ ์ฅ์๊ฐ ์ฟผ๋ฆฌ๋๋ค๋ ๊ฒ์
๋๋ค.
๋ฐ๋ผ์ ๋์ $CWD
, pip.vcs.git
๋ ํญ์ --work-tree
์ง์ ํด์ผ ํฉ๋๋ค.
http://git-scm.com/blog/2010/04/11/environment.html
๋๋ git
๋ฅผ ํธ์ถํ๊ธฐ ์ ์ ํด๋น ๋ณ์๋ฅผ ์ค์ ํด์ ํ ์ ์์ต๋๋ค.
pip๊ฐ ์ ํํ ์ด๋์์ ์คํจํ๋์ง ๋ณด์ฌ์ฃผ๋ ํ ์คํธ ์ฌ๋ก๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น?
์ค์ :
$ mkvirtualenv pip-test
$ pip install -e [email protected]:jkbr/httpie.git#egg=httpie
๋ถํฉ๊ฒฉ:
$ GIT_DIR=/foo pip freeze
Error when trying to get requirement for VCS system Command /usr/local/bin/git config remote.origin.url failed with error code 1 in /Users/jakub/.virtualenvs/pip-test/src/httpie, falling back to uneditable format
Could not determine repository location of ~/.virtualenvs/pip-test/src/httpie
Pygments==1.6
## !! Could not determine repository location
httpie==0.6.0
requests==1.2.3
wsgiref==0.1.2
GIT_DIR
๋ ์๋ฅผ ๋ค์ด Git ํํฌ๋ก ํธ์ถ๋๋ ์คํฌ๋ฆฝํธ์์ ์ค์ ๋ฉ๋๋ค.
์ด ๋ฌธ์ , ๋์ผํ ๋ฌธ์ ๋ฅผ ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ์์น ์๋ ๋์์ ์ ๋ฐํ๋ ์ค์ ์๋ git ์ ์ฅ์์ ์
๋ฐ์ดํธ ํ ํํฌ ๋ด๋ถ์์ pip๋ฅผ ์คํํ๋ ๊ฒ์
๋๋ค.
ํํฌ ๋ด๋ถ์์ GIT_DIR์ '.'๋ก ์ค์ ๋์ด pip๊ฐ ๋ณต์ ํ ์ ์ฅ์ ๋์ ๋ฐ๋ก ๊ทธ ์ ์ฅ์์์ pip๊ฐ ์๋ํฉ๋๋ค.
--work-tree๋ฅผ ๋ช ์์ ์ผ๋ก ์ค์ ํ๋ ๊ฒ ์ธ์๋ ๋ค๋ฅธ ์๋ฃจ์ ์ GIT_DIR(๋ฐ GIT_WORK_TREE)์ ์ค์ ํด์ ํ๋ ๊ฒ์ ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด PR #4666์ ๊ฒ์ํ์ต๋๋ค. (Travis CI ์์ด์ฝ์ด ์คํจ๋ฅผ ๋ณด์ฌ๋ ํ ์คํธ๋ ์ ์์ ๋๋ค. ์ต๊ทผ Travis CI ํ ์คํธ ์คํ์ ํ๋์ค๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๋ฌธ์ , ๋์ผํ ๋ฌธ์ ๋ฅผ ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ์์น ์๋ ๋์์ ์ ๋ฐํ๋ ์ค์ ์๋ git ์ ์ฅ์์ ์ ๋ฐ์ดํธ ํ ํํฌ ๋ด๋ถ์์ pip๋ฅผ ์คํํ๋ ๊ฒ์ ๋๋ค.
ํํฌ ๋ด๋ถ์์ GIT_DIR์ '.'๋ก ์ค์ ๋์ด pip๊ฐ ๋ณต์ ํ ์ ์ฅ์ ๋์ ๋ฐ๋ก ๊ทธ ์ ์ฅ์์์ pip๊ฐ ์๋ํฉ๋๋ค.
--work-tree๋ฅผ ๋ช ์์ ์ผ๋ก ์ค์ ํ๋ ๊ฒ ์ธ์๋ ๋ค๋ฅธ ์๋ฃจ์ ์ GIT_DIR(๋ฐ GIT_WORK_TREE)์ ์ค์ ํด์ ํ๋ ๊ฒ์ ๋๋ค.