python:mercurial

文書の過去の版を表示しています。


Mercurial - 分散型バージョン管理システム

ここでは Python と pip の導入が完了していることを前提とする。

Python のインストール
easy_install、setuptools、pip - パッケージ管理

CentOS の場合は gcc と python-devel をインストールしておく。

$ sudo yum install gcc python-devel
$ sudo pip install mercurial
$ hg version
Mercurial - 分散構成管理ツール(バージョン 3.4.1)
(詳細は http://mercurial.selenic.com を参照)

Copyright (C) 2005-2015 Matt Mackall 他
本製品はフリーソフトウェアです。
頒布条件に関しては同梱されるライセンス条項をお読みください。
市場適合性や特定用途への可否を含め、 本製品は無保証です。
vi ~/.hgrc
[ui]
username = Tomoyan <tomoyan@example.com>

既存のディレクトリでリポジトリを作成する。

$ mkdir repos
$ cd repos
$ hg init

新たにリポジトリのディレクトリを作成する。

$ hg init repos
$ vi .hgignore
# Shell 形式パターンマッチ
syntax: glob
 
*.pyc
# 正規表現パターンマッチ
syntax: regexp
 
^\.git/
$ hg add file.txt
$ hg status
A file.txt
$ hg commit
$ hg diff
$ hg revert file.txt
$ hg rollback
$ hg log

ssh経由でリモートリポジトリをローカルに複製する。

$ hg clone ssh://user@server:port//var/hg/hoge/fuga my-fuga
$ hg pull
$ hg update

作業領域の変更を破棄する場合

$ hg update -C
$ hg push ssh://user@server:port//var/hg/hoge/fuga

※push先にリポジトリが存在している必要がある。存在しない場合は作成するかcloneしておくこと。

.hg/hgrc に以下の記載があるなら省略できる。

[paths]
default = ssh://user@server:port//var/hg/hoge/fuga
$ hg push


サーバーでリポジトリを作成する場合。

$ hg init fuga


クライアントからサーバーへクローンする場合。

$ hg clone . ssh://user@server:port//var/hg/hoge/fuga

convert エクステンションを有効化する。

$ vi ~/.hgrc
~/.hgrc
[extensions]
convert =

git を Mercurial へ変換

$ hg convert [repository] [new-repository]
変換先リポジトリ new-repository の初期化中
変換元リポジトリの走査中...
並べ替え中...
変換中...
9625 Initial structure
〜省略〜
$ cd new-repository
$ hg update

hg convert で svn を Mercurial に変換する。

$ hg convert _wxHexEditor-v0.23-src_svn _wxHexEditor-v0.23-src_hg
変換先リポジトリ _wxHexEditor-v0.23-src_hg の初期化中
変換元リポジトリの走査中...
並べ替え中...
変換中...
$ cd _wxHexEditor-v0.23-src_hg
$ hg update

Subversion のリポジトリがリモートにしかない場合

git-svn を使って svn を一度 git に変換する。

$ sudo dnf install git-svn
$ git svn clone https://svn.code.sf.net/p/wxhexeditor/code/trunk wxHexEditor-v0.23-src_git
Initialized empty Git repository in /home/tomoyan/wxHexEditor-v0.23-src_git/.git/
	A	testfile
	A	HexEditorCtrl/wx_pch.h
	A	HexEditorCtrl/HexEditorCtrl.cpp
〜省略〜
W: -empty_dir: contrib/wxhexeditor_0.22-1.dsc
r464 = 9d76f35dbaf4053a5b90771b65147d5a940f0fca (refs/remotes/git-svn)
Checked out HEAD:
  https://svn.code.sf.net/p/wxhexeditor/code/trunk r464
creating empty directory: mhash/mhash-0.9.9/lib

hg convert で git を Mercurial に変換する。

$ hg convert wxHexEditor-v0.23-src_git wxHexEditor-v0.23-src_hg
変換先リポジトリ wxHexEditor-v0.23-src_hg の初期化中
変換元リポジトリの走査中...
並べ替え中...
変換中...
435 Reset svn
434 DataInterpreter Added.
433 DataInterpreter big endian and unsigned swithces fixed.
〜省略〜
2 Last touches for wxMSW.                                                                           
1 Fixed assertions due ~wxHexCtrl() cleanup code.                                                   
0 Updated to v0.23                                                                                  
ブックマークの更新中
$ cd wxHexEditor-v0.23-src_hg
$ hg update

hgrc の所有者やグループが自分ではない時に発生する。
表示される所有者やグループが本当に信頼できるものであれば、~/.hgrc に以下の記述を追加する。

$ vi ~/.hgrc
~/.hgrc
[trusted]
users = root
groups = root

日本語では、gcc: エラー: /usr/lib/rpm/redhat/redhat-hardened-cc1: そのようなファイルやディレクトリはありません
英語では、g++: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory が発生する。

redhat-rpm-config パッケージをインストールしてから行う。

$ sudo dnf install redhat-rpm-config
  • python/mercurial.1550079979.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)