Semantic Versioning 시의 ^, ~, = 의 의미

npm 혹은 Solidity 등은 Semantic Versioning을 사용해서 버전을 정합니다. Semantic Version은 MAJOR.MINOR.PATCH 형식의 버전 명을 말합니다. https://semver.org/ 를 참고해 봅시다.

MAJOR의 경우, 이전과 호환되지 않는 변경이 있는 경우 올립니다.
MINOR의 경우, 이전과 호환되지만 기능 추가 등 주요 변경이 있는 경우 올립니다.
PATCH의 경우, 이전과 호환되고, 버그 수정, 내부 리팩토링 등의 변경이 있는 경우 올립니다.

현재 프로젝트에서 사용하는 버전을 지정할 때 ^, ~, – 등의 기호로 지정하는데 다음과 같은 뜻을 갖습니다.

^ (캐럿): 마이너 버전이나 패치 버전으로 호환되는 업데이트를 할 수 있습니다. 예를 들어, “^1.2.3″을 지정한 경우, 1로 시작하고 2.3보다 크거나 같은 마이너 또는 패치 버전을 말합니다. 따라서 1.2.3, 1.2.4, 1.3.0 등은 해당되지만 2.0.0은 해당되지 않습니다.

~ (틸더): 패치 버전만 호환되는 업데이트를 할 수 있습니다. 예를 들어, “~1.2.3″을 지정한 경우, 1.2로 시작하는 패치 버전이 3보다 크거나 같은 모든 버전을 말합니다. 따라서 1.2.3, 1.2.4는 해당되지만 1.3.0은 해당되지 않습니다.

= (이퀄): 지정한 정확한 버전만 말합니다. 예를 들어 “1.2.3”을 지정한 경우, 정확히 1.2.3만 해당됩니다.

git p4 Windows에서 쓰기

아. git-p4를 내가 다시 쓸 일이 생기다니.. OTL

Perforce는 (거지같게도) patch 파일이나 diff 파일 만드는 기능이 빈약해서 git p4 clone 해서 patch 파일을 만들어 사용하면 편하다.

사실 별로 해줄 건 없고,

Git for Windows 깔고,

p4 깔고,

git-p4.py 만 https://raw.github.com/git/git/master/git-p4.py 에서 받아다가 “C:\Program Files (x86)\Git\bin\” 아래에 넣어주면 된다.

git-p4.py 치는 거보다 git p4 로 쓰고 싶으면 “%USERPROFILE%.gitconfig” 를 아래와 같이 고쳐서 alias해주면 된다.

[alias]

p4 = !’C:\\Program Files (x86)\\Git\\bin\\git-p4.py’

기본 config variable은 다음과 같다.

git-p4.user

User specified as an option to all p4 commands, with -u
<user>
. The environment variable P4USER can be used instead.

git-p4.password

Password specified as an option to all p4 commands, with -P
<password>
. The environment variable P4PASS can be used
instead.

git-p4.port

Port specified as an option to all p4 commands, with -p
<port>
. The environment variable P4PORT can be used instead.

git-p4.host

Host specified as an option to all p4 commands, with -h
<host>
. The environment variable P4HOST can be used instead.

git-p4.client

Client specified as an option to all p4 commands, with -c
<client>
, including the client spec. 

참고: http://ericlathrop.com/2012/12/how-to-set-up-git-p4-in-windows/


[Linux] quilt 사용법

quilt 에 대한 간단한 사용법은 http://kldp.org/node/81228 에 잘 나와있다.

요약하면,

1. 새 패치 만들기
quilt new <패치이름>.patch
quilt add <수정할 파일 이름>
파일 수정
quilt refresh

2. 패치 가져오기
quilt import <패치파일>
quilt push
quilt refresh – 패치 새 버전으로 저장