developer tip

최고의 필수 hg / 수은 확장은 무엇입니까?

copycodes 2020. 10. 24. 10:35
반응형

최고의 필수 hg / 수은 확장은 무엇입니까?


나는 최근에 Hg / mercurial, 즉 Fogcreek 's Kiln과 함께 손을 대고 있었고, 꼭 필요한 확장이 무엇인지 알아 내려고 노력하고 있습니다. 설명이 멋져 보이지만 버그가 있거나 비실용적 인 확장을 테스트하는 데 관심이 없기 때문에 확장 목록을 살펴 보는 것이 약간 까다 롭습니다.

그렇다면 어떤 hg 확장을 사용합니까?

확장 사용을 참조하십시오.


내 히트 목록 :

필요한 간단한 것 :

  1. color: 명령의 색상 화 출력 좋아 diff하고 status평가하기 쉽게 만드는.
  2. pager: 한 번에 한 페이지 씩 긴 출력을 검색합니다.
  3. fetch: 한 단계에서 다른 저장소에서 가져 오기, 업데이트 및 병합합니다.
  4. graphlog: 셸에 개정 그래프를 표시합니다. 로그 기록에서 분기를 보는 데 매우 유용합니다.
  5. hgk: 그래픽 인터페이스로 저장소 탐색 (TortoiseHg 및 Murky 참조)

을 활성화 pager하면 특정 명령을 방해하지 않도록 구성해야합니다.

[pager]
pager = LESS='FSRX' less
ignore = version, help, update, serve, record

내가 강력히 추천하는 (그리고 자주 사용하는) 중간 확장 :

  1. record: 커밋 할 파일 덩어리를 대화식으로 선택할 수 있습니다. 한 세트의 변경 작업을 진행 중이고 자체 커밋이 있어야하는 항목을 수정하게되는 경우에 적합합니다.
  2. extdiff: 외부 비교 도구 (예 : meld) 구성
  3. share: 동일한 저장소 기록을 사용하는 여러 클론이 있음

내가 없으면 안 될 고급 확장 :

  1. mq: 패치 스택을 관리합니다. 매우 강력하여 트리 위에 패치를 레이어링 할 수 있습니다.
  2. notify: 저장소 변경시 이메일 알림을 보냅니다.
  3. rebase: 새 상위 개정판 위에 로컬 변경 사항을 다시 적용합니다.
  4. largefiles: hg 저장소 외부의 대용량 바이너리 파일 작업

위의 모든 것은 Mercurial과 함께 번들로 제공되며 안정적이고 잘 테스트되었습니다. 나는 그들 모두를 강력히 추천합니다.

조사 할 가치가있는 비 핵심 확장 :

  1. shelve: 선택적으로 변경 사항을 제쳐두고 (덩어리 단위로) 복원합니다.
  2. acl: 저장소 트리의 다른 부분에 대한 액세스를 선택적으로 허용

대체 확장 및 코어로 마이그레이션 됨 (@ durin42의 정보) :

  • forestsubrepov1.3에 도입 된 지원 으로 대체되었습니다.
  • bookmarks 코어에 있으며 항상 활성화되어 있습니다.
  • transplantgraft핵심 명령 인으로 대체됩니다 .
  • histedit v2.3부터 코어에 있지만 기본적으로 비활성화되어 있습니다.
  • inotify 경쟁 조건으로 인한 버그가있는 것이므로 권장되지 않습니다.

graphlog그리고 mq특히 맛있는.

  1. 변환 : 다른 시스템과 변환
  2. Mq (Mercurial Queues) : 패치 스택으로 변경 사항 처리
  3. Forest : 여러 중첩 된 Mercurial 저장소를 한 번에 커밋하고 업데이트 할 수 있습니다.
  4. 공유 : 유사한 저장소로 작업 할 때 시간 및 디스크 공간 절약
  5. Hgk : 역사를 그래픽으로 보여줍니다.
  6. Graphlog : 저는 항상 'hg log'가 아닌 'hg glog'를 입력합니다. 역사에 대한 아스키 예술관
  7. 이식 : 다른 분기의 몇 가지 변경 집합 만 병합하려는 경우 유용합니다. 최신 버전 hg rebase은 일부 중복 될 수 있습니다.
  8. 리베이스 : 브랜치 상단에 일련의 변경 세트로 변경을 처리하는 다른 방법입니다. git사용자는 리베이스를 좋아합니다. mq많은 사용 사례를 대체 할 수 있습니다.
  9. Shelve : 잠시 동안 다른 작업을해야하는 경우 작업 복사본의 변경 사항을 숨길 수있는 장소입니다.
  10. 북마크 : 특정 분기에 대한 최신 커밋의 이름을 지정합니다. git가지 와 비슷합니다 .

아직 언급되지 않음 : mercurial_keyring

https://www.mercurial-scm.org/wiki/KeyringExtension

"Keyring extension uses services of the keyring library to securely save authentication passwords (HTTP/HTTPS and SMTP) using system specific password database (Gnome Keyring, KDE KWallet, OSXKeyChain, dedicated solutions for Win32 and command line)."

I use ssh to access my repos on GitHub and Bitbucket, and my keyphrase is held in the keychain. This extension lets Mercurial get it whenever needed.

Also required for me: hg-git

http://hg-git.github.com/

Mercurial plugin letting you pull and push git repos using hg as a client. Use it all the time.


If you're working with a slowish host like Bitbucket, progress is essential. Otherwise hg push looks like it's hung :\


My list:

  1. graphlog. I use it much more than hg log. (wish it could restrict to branches)

  2. purge. remove all files not in Mercurial. I use this instead of or as a cleaner version of make clean.

Less used, but nice:

  • children (lets you say "hg children -r XXX")
  • parentrevspec: lets you say stuff like "foo~2 = foo^1^1 = foo^^ = first parent of first parent of foo"

I keep trying to use the history editing tools, but keep running into limitations. I want them to work.

  • collapse
  • histedit
  • I consider rebase a history editing tol as well

By the way, beware: hgk and fetch are "unloved": https://www.mercurial-scm.org/wiki/UnlovedFeatures. But then, SubRepos are, not unloved, but a feature of last resort, and I use subrepos.

참고URL : https://stackoverflow.com/questions/1869040/what-are-the-best-and-must-have-hg-mercurial-extensions

반응형