hgsvn:なんか使い方が間違えているかも。

svn(server)<->hg(server)<->hg(client)でやりたいのですが。。。。

Subversionレポジトリ作成

(hg) hdknr@LennyOne:~/.virtualenvs/hg/svn$ svnadmin create –fs-type fsfs bali
(hg) hdknr@LennyOne:~/.virtualenvs/hg/svn$ ls -R bali
bali:
README.txt  conf  db  format  hooks  locks

bali/conf:
authz  passwd  svnserve.conf

bali/db:
current  format  fs-type  revprops  revs  transactions  txn-current  txn-current-lock  txn-protorevs  uuid  write-lock

bali/db/revprops:
0

bali/db/revprops/0:
0

bali/db/revs:
0

bali/db/revs/0:
0

bali/db/transactions:

bali/db/txn-protorevs:

bali/hooks:
post-commit.tmpl  post-revprop-change.tmpl  pre-commit.tmpl  pre-revprop-change.tmpl  start-commit.tmpl
post-lock.tmpl    post-unlock.tmpl          pre-lock.tmpl    pre-unlock.tmpl

bali/locks:
db-logs.lock  db.lock

Subversionレポジトリをチェックアウトしてファイルを追加

(hg) hdknr@LennyOne:~/.virtualenvs/hg/svn$ cd
(hg) hdknr@LennyOne:~$ svn co file:///home/hdknr/.virtualenvs/hg/svn/bali
リビジョン 0 をチェックアウトしました。
(hg) hdknr@LennyOne:~$ echo `date` > bali/readme.txt
(hg) hdknr@LennyOne:~$ svn add bali/readme.txt
A         bali/readme.txt
(hg) hdknr@LennyOne:~$ svn commit bali -m "readme.txt"
追加しています              bali/readme.txt
ファイルのデータを送信しています .
リビジョン 1 をコミットしました。

hgimportsvnでMercurialレポジトリを作成

(hg) hdknr@LennyOne:~$ cd .virtualenvs/hg/repos/

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos$  hgimportsvn file:///home/hdknr/.virtualenvs/hg/svn/bali/
SVN branch isn’t a copy
Finished! You can now pull all SVN history with ‘hgpullsvn’.

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos$ ls -aR bali/
bali/:
.  ..  .hg  .hgignore  .hgsvn  .svn  readme.txt

bali/.hg:
.  ..  00changelog.i  branch  dirstate  inotify.sock  localtags  requires  store  wlock

bali/.hg/store:
.  ..

bali/.hgsvn:
.  ..

bali/.svn:
.  ..  entries  format  prop-base  props  text-base  tmp

bali/.svn/prop-base:
.  ..

bali/.svn/props:
.  ..

bali/.svn/text-base:
.  ..  readme.txt.svn-base

bali/.svn/tmp:
.  ..  prop-base  props  text-base

bali/.svn/tmp/prop-base:
.  ..

bali/.svn/tmp/props:
.  ..

bali/.svn/tmp/text-base:
.  ..

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$ hg status
A readme.txt
? .hgignore

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$ hg add .hgignore
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$ hg status
A .hgignore
A readme.txt

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$ hg commit -u hdknr -m "mercurial commit"
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$ hg status
(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$

WS000016

 

Mercurialレポジトリをクローンしてファイルを追加

(op)hdknr@debuniid:/tmp$ hg clone http://hg.hdknr.deb/hg/bali
複製先ディレクトリ: bali
全チェンジセットを取得中
チェンジセットを追加中
マニフェストを追加中
ファイルの変更を追加中
1 のチェンジセット(2 の変更を 2 ファイルに適用)を追加
ブランチ bali へ更新中
ファイル状態: 更新数 2、マージ数 0、削除数 0、衝突未解決数 0

(op)hdknr@debuniid:/tmp$ cd bali/

(op)hdknr@debuniid:/tmp/bali$ echo "free without any condition" > license.txt

(op)hdknr@debuniid:~$ hg clone http://hg.hdknr.deb/hg/bali
複製先ディレクトリ: bali
全チェンジセットを取得中
チェンジセットを追加中
マニフェストを追加中
ファイルの変更を追加中
1 のチェンジセット(2 の変更を 2 ファイルに適用)を追加
ブランチ bali へ更新中
ファイル状態: 更新数 2、マージ数 0、削除数 0、衝突未解決数 0
(op)hdknr@debuniid:~$ cd bali/
(op)hdknr@debuniid:~/bali$ echo "free without any condition" > license.txt
(op)hdknr@debuniid:~/bali$ hg add license.txt
(op)hdknr@debuniid:~/bali$ hg commit -u hdknr -m "license"
(op)hdknr@debuniid:~/bali$ hg push
http://hg.hdknr.deb/hg/bali への反映中
変更点を探索中
中止: HTTP Error 500: Permission denied: .hg/store/lock

サーバーのディレクトリ権限問題対応

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos$ chmod -R 777 bali

(op)hdknr@debuniid:~/bali$ hg push
http://hg.hdknr.deb/hg/bali への反映中
変更点を探索中
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files

WS000018 

MercurialレポジトリからSubversionへpush

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$ hgpushsvn
Traceback (most recent call last):
  File "/home/hdknr/.virtualenvs/hg/bin/hgpushsvn", line 8, in <module>
    load_entry_point(‘hgsvn==0.1.7’, ‘console_scripts’, ‘hgpushsvn’)()
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/run/hgpushsvn.py", line 286, in main
    return locked_main(real_main, options, args)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/run/common.py", line 90, in locked_main
    return real_main(*args, **kwds)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/run/hgpushsvn.py", line 216, in real_main
    hg_start_cset = get_hg_cset(hg_start_rev)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/run/hgpushsvn.py", line 44, in get_hg_cset
    return run_hg(args)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/common.py", line 223, in run_hg
    bulk_args=bulk_args, encoding="utf-8")
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/common.py", line 168, in run_command
    return _run_raw_command(cmd, map(_transform_arg, args), fail_if_stderr)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/common.py", line 142, in _run_raw_command
    % (pipe.returncode, cmd_string, err))
hgsvn.errors.ExternalCommandFailed: External program failed (return code 255): hg ‘–encoding’ ‘utf-8’ ‘log’ ‘-q’ ‘-r’  ‘svn.1’
abort: unknown revision ‘svn.1’!

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$ hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$ ls -al
合計 40
drwxrwxrwx 5 hdknr hdknr 4096 2009-12-29 16:13 .
drwxr-xr-x 4 hdknr hdknr 4096 2009-12-29 16:09 ..
drwxrwxrwx 3 hdknr hdknr 4096 2009-12-29 16:13 .hg
-rw-r–r– 1 hdknr hdknr  194 2009-12-29 16:12 .hgignore
-rwxrwxrwx 1 hdknr hdknr  194 2009-12-29 16:00 .hgignore.orig
drwxrwxrwx 2 hdknr hdknr 4096 2009-12-29 16:12 .hgsvn
drwxrwxrwx 6 hdknr hdknr 4096 2009-12-29 16:12 .svn
-rw-r–r– 1 hdknr hdknr   27 2009-12-29 16:13 license.txt
-rw-r–r– 1 hdknr hdknr   43 2009-12-29 16:12 readme.txt
-rwxrwxrwx 1 hdknr hdknr   43 2009-12-29 16:00 readme.txt.orig

(hg) hdknr@LennyOne:~/.virtualenvs/hg/repos/bali$ hgpushsvn
Traceback (most recent call last):
  File "/home/hdknr/.virtualenvs/hg/bin/hgpushsvn", line 8, in <module>
    load_entry_point(‘hgsvn==0.1.7’, ‘console_scripts’, ‘hgpushsvn’)()
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/run/hgpushsvn.py", line 286, in main
    return locked_main(real_main, options, args)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/run/common.py", line 90, in locked_main
    return real_main(*args, **kwds)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/run/hgpushsvn.py", line 216, in real_main
    hg_start_cset = get_hg_cset(hg_start_rev)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/run/hgpushsvn.py", line 44, in get_hg_cset
    return run_hg(args)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/common.py", line 223, in run_hg
    bulk_args=bulk_args, encoding="utf-8")
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/common.py", line 168, in run_command
    return _run_raw_command(cmd, map(_transform_arg, args), fail_if_stderr)
  File "/home/hdknr/.virtualenvs/hg/lib/python2.5/site-packages/hgsvn/common.py", line 142, in _run_raw_command
    % (pipe.returncode, cmd_string, err))
hgsvn.errors.ExternalCommandFailed: External program failed (return code 255): hg ‘–encoding’ ‘utf-8’ ‘log’ ‘-q’ ‘-r’ ‘svn.1’
abort: unknown revision ‘svn.1’!

どうやら  hg ‘–encoding’ ‘utf-8’ ‘log’ ‘-q’ ‘-r’ ‘svn.1’ というコマンドを実行して失敗している。
(hg) hdknr@LennyOne:~/tmp/bali$ hg –encoding utf-8 log -q -r svn.1
abort: unknown revision ‘svn.1’!

(hg) hdknr@LennyOne:~/tmp/bali$ hg log
changeset:   0:aaab7dba8973
branch:      bali
tag:         tip
user:        hdknr
date:        Tue Dec 29 16:21:07 2009 +0900
summary:     hogehoge

(hg) hdknr@LennyOne:~/tmp/bali$ hg –encoding utf-8 log -q -r 0:aaab7dba8973
0:aaab7dba8973

(hg) hdknr@LennyOne:~/tmp/bali$ hgpushsvn -f
*****  hg ‘–encoding’ ‘utf-8’ ‘root’
*****  svn ‘info’ ‘–xml’ ‘.’
*****  svn ‘info’ ‘–xml’ ‘file:///home/hdknr/.virtualenvs/hg/svn/bali’
*****  hg ‘–encoding’ ‘utf-8’ ‘branch’
*****  hg ‘–encoding’ ‘utf-8’ ‘log’ ‘-q’ ‘-r’ ‘svn.1’
*****  hg ‘–encoding’ ‘utf-8’ ‘log’ ‘-q’ ‘-r’ ‘0’
Warning: revision ‘svn.1’ not found, forcing to first rev ‘0:aaab7dba8973

*****  hg ‘–encoding’ ‘utf-8’ ‘log’ ‘-q’ ‘-r’ ‘tip’
*****  hg ‘–encoding’ ‘utf-8’ ‘up’ ‘-C’ ‘aaab7dba8973’
*****  hg ‘–encoding’ ‘utf-8’ ‘st’ ‘-arm’ ‘–rev’ ‘aaab7dba8973’
* svn: nothing to do
Nothing to do.

(hg) hdknr@LennyOne:~/tmp/bali$ svn status
?      license.txt
?      .hgignore
?      .hgsvn
?      .hg
(hg) hdknr@LennyOne:~/tmp/bali$ svn add license.txt
A         license.txt
(hg) hdknr@LennyOne:~/tmp/bali$ svn add .hgignore
A         .hgignore
(hg) hdknr@LennyOne:~/tmp/bali$ svn commit -m "added"
追加しています              .hgignore
追加しています              license.txt
ファイルのデータを送信しています ..
リビジョン 2 をコミットしました。

(hg) hdknr@LennyOne:~/bali$ svn update
A    .hgignore
A    license.txt
リビジョン 2 に更新しました。

つまり、この用途であれば、
1.svnのレポジトリを作る
2.svnのレポジトリをチェックアウトする
3.hg initする
4.定期的にsvn add/delete commitを行う。

でいいのかも。

カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中