Todos
Opened this issue · 5 comments
sangwoo-joh commented
- 브랜치 정리하기 - Unix, Darwin, WSL 세개 다 따로 관리하기 힘드니까 그냥 하나로 퉁치자.
- emacs 따로 분리
- OCaml 설치 스크립트 완성하기
- zsh 패키지 정리좀하기
- 지금 submodule로 되어 있는 것들 subtree로 빼기
sangwoo-joh commented
참고) 지금 서브모듈 목록
- d2codingfont
- powerline (for font)
- emacs/emacs-doom-themes
- emacs/yasnippet-snippets
sangwoo-joh commented
subtree안에 또 subtree가 있으면 어떻게 되지?
sangwoo-joh commented
좀 써본 결과
submodule
서브 모듈은 심볼릭 링크랑 비슷하다. clone하면 안에 저장소를 가리키는 링크만 남아있고 실제 코드를 쓰려면 직접 커맨드로 가져와야 한다.
subtree
서브 트리는 그냥 복사하는 것과 비슷하다. clone하면 안에 코드가 쌩으로 다 들어있다.
둘다 커밋을 따로 싱크해줘야 하는 건 비슷하다. 차이점은 서브 모듈은 심볼릭 링크이다 보니 커밋 해시까지 같은데, 서브 트리는 카피한거다 보니 커밋 내용은 같아도 해시는 다르다.
좀 고민해본 결과
- 서브 모듈: 서브 모듈로 담은 프로젝트를 직접 활발하게 개발할 때 유용하다. 서브 모듈을 담고 있는 부모 프로젝트에서는 서브 모듈이 업데이트 될 때마다 최신 커밋을 땡겨와서 싱크해줘야 한다.
- 서브 트리: 서브 트리 프로젝트를 직접 개발하지 않고 서브 트리를 담고 있는 부모 프로젝트에서 서브 트리에 있는 프로젝트 코드까지 전부 개발할 때 유용한 것 같다. 다만 서브 트리마다 리모트가 있어야되고, 부모 프로젝트에서 서브 트리 내용을 수정한 다음 서브 트리에 내용을 반영하려면 직접 서브 트리 export를 해줘야 한다는 귀찮음이 있다.
그래서 고민해본 결과...
- dotfiles: font는 서브모듈로 땡기지말고 그냥 직접 다운받아서 (또는
--depth 1
로 클론해서) 쓰고 버리는게 좋겠다. 어차피 내가 관리할 게 아니다. - emacs: 얘가 문젠데.. 일단 emacs 자체는 따로 관리가 필요해보이기 때문에 프로젝트를 분리하고 싶다. 고민 되는 건 안에 있는 emacs-doom-themes랑 yasnippet-snippets 인데, 이걸 서브 모듈로 뺄지 서브 트리로 할지가 고민된다.
sangwoo-joh commented
범용성을 위해서 OCaml 설치 스크립트의 위대한 꿈은 버려야할 것 같다.
그렇다고 쉘 스크립트로 짰다간 디버깅하다가 기능 구현을 다 놓칠 것이다.
따라서 그냥 파이썬으로 간다. 단 아무런 패키지 설치 없는 바닐라 파이썬으로만 구현해야 한다. 따라서 옵션은 argparser, 그외 갖은 작업은 그냥 쌩 subprocess로 날리자.
argparser 에도 서브 커맨드가 있으니 이걸 활용하자.
sangwoo-joh commented
커맨드 목록
- config 파일 설정 (심볼릭 링크)
- git, nvim, tmux, zsh,
- 패키지 설치 (리눅스/다윈)
- 파이썬, Pipenv (brew/pip) + python 3.10+
- OCaml & Opam
- Rust & Cargo
- 폰트 설치