Programing

Mercurial 무시 파일

lottogame 2020. 11. 18. 08:22
반응형

Mercurial 무시 파일


Mercurial이 구성 파일을 무시하도록하려고하는데 작동하지 않습니다.

내 서버에 저장소를 만들고 hg init해당 저장소를 내 컴퓨터에 복제했습니다. 그런 다음 configurationj 파일을 편집 할 수 있지만 해당 변경 사항을 서버에 다시 커밋하지는 않습니다.

.hgignore클론의 루트 에을 (를) 만들려고 시도 했지만 Mercurial은 파일에 a 플래그를 지정하고 ?커밋 여부에 관계없이 구성 변경 사항을 계속 기록합니다.

.hgignore파일을 잘못된 위치에 생성하고 있습니까?이 파일을 커밋해야합니까? 서버의 저장소를 초기화하기 전에 만들어야합니까?


  • .hgignore는 초기화 전에 만들 필요가 없습니다.
  • 구성 파일은 다른 사용자가 사용하므로 다른 사용자가 만들 필요가 없도록 .hgignore를 커밋하는 것이 좋지만 수은이 로컬 파일을 무시할 필요는 없습니다 (예제 참조).
  • 예 .hgignore는 루트 디렉토리에 있어야합니다.

간단한 예.

저장소 초기화 :

$ mkdir test 
$ cd test 
$ hg init 

파일 생성

$ touch foo 
$ hg st 
? foo 

이제 저장소의 루트 디렉토리에 .hgignore를 만듭니다.

$ echo 'foo' > .hgignore 

foo 이제 무시됩니다.

$ hg st 
? .hgignore 

이 작업을 위해 .hgignore를 커밋 할 필요는 없습니다.

좀 더 까다로운

구성 파일과 .hgignore (구성 파일 무시)가 모두 저장소에서 커밋 된 경우 예, 구성 파일 변경 사항이 추적됩니다 (즉, .hgignore는 효과가 없음).

구성 생성 및 커밋

$ touch config
$ hg ci config -Am 'adding conf'

무시해:

$ echo 'config' >> .hgignore

.hgignore 커밋 :

$ hg ci .hgignore -Am '.hgignore'

그런 다음 저장소를 복제하는 경우 :

$ cd ..
$ hg clone test other-user
$ cd other-user

구성을 수정하십시오.

$ echo 'new config param' >> config

그러면 hg가 변경 사항을 표시합니다.

$ hg st
M config

어떻게 처리할까요?

저장소에 버전이 지정된 기본 기본 구성 파일을 갖고 싶을 것입니다. global.cfg

그리고 사용자에게 local.cfg로컬 설정을 저장할 위치 를 만들도록 요청합니다 . 그리고 스크립트는있는 local.cfg경우 소스를 제공합니다 . 로컬 설정이 전역 설정보다 우선합니다. 물론 .hgignore무시할 줄을 추가하십시오 local.cfg;)

대안 : 전역 구성 파일이없고 config.example사용자가 로컬로 복사하고 수정 하는 파일 만 있습니다. 여기서 단점은 버전 간의 변경 사항을 쉽게 추적 할 수 없다는 것입니다.


파일을 무시하더라도 Mercurial은 파일이 저장소에 추가되면 추적합니다.

저장소에서 구성 파일을 제거하려면 다음을 사용할 수 있습니다.

hg remove -Af file.cfg

This will remove the file from from the repository (once committed) without deleting your local file. See hg help remove However, there is now a delete recorded in the repo, and Mercurial will remove that file when your or anyone else updates across that revision.

You could also rename it and have people copy the master to their local file, but you will need to coordinate updates of the local file.

hg rename file.cfg file.cfg.example

Add the .hgignore file itself to the .hgignore file:

syntax: glob

.hgignore

or, just check the .hgignore file in to your local clone...

참고URL : https://stackoverflow.com/questions/965303/mercurial-ignore-file

반응형