【bzr】Bazaarでバージョン管理 Rev 2at TECH
【bzr】Bazaarでバージョン管理 Rev 2 - 暇つぶし2ch2:デフォルトの名無しさん
10/02/12 17:42:19
bzr revert

3:前スレ1
10/02/12 18:52:13
前スレ主だが、祝2スレ目


誰か簡単なbzrイントロをテンプレとして貼ってくれると助かる。


4:デフォルトの名無しさん
10/02/12 22:47:38
これも追加しとくとよいかな。

Bazaar Wiki
URLリンク(www19.atwiki.jp)

5:デフォルトの名無しさん
10/02/13 00:08:18
>>1
乙です。

>>4
そのWiki自体は悪くないと思うけど、
今の日本語ドキュメントはここに移転してる気がする
URLリンク(methane.sakura.ne.jp)

6:デフォルトの名無しさん
10/02/15 17:05:12
>>1
乙でした!

もっとユーザが増えてくれると嬉しいね。

7:デフォルトの名無しさん
10/02/16 00:22:25
Bazaarのドキュメント
URLリンク(doc.bazaar.canonical.com)

8:デフォルトの名無しさん
10/02/17 17:41:05
apache ftpserverでFTPサーバをたてて、user:admin pass:adminでアクセスできるようにして
(FFFTPで接続確認)
bazaarでpushしようとして

bzr push --create-prefix sfURLリンク(admin:admin@<hostname>)

と実行したんだけど

bzr: ERROR: Unable to connect to SSH host vermanageserver;
(10061, 'Connection refused')

となります。
どこがいけないんでしょうか?

9:methane
10/02/17 17:46:19
>>8
sftpとftpは違うので、 fhttp:// を使ってみてください。

10:デフォルトの名無しさん
10/02/17 18:00:42
apache http serverがhttp httpsを扱えるから
ftpサーバもsftpを扱えると思ってしまったのだろうか。


11:8
10/02/17 18:07:16
>>9
ftpに変えてみましたが、エラー内容がかわりませんでした。
bazaarのドキュメントでは<ユーザ名>@<ホスト名>のようになってますが、
パスワードはURLに含められないのでしょうか?

>>10
すいません、その通りです

12:methane
10/02/17 18:15:00
>>11
エラーの内容が認証ではなく接続できませんでしたというものなので、
パスワードの問題ではないと思います。
本当に、 fhttp:// にしたのに、 Unable to connect to SSH host と出ました?
ftp なら SSH になるはずが無いのですが。

13:8
10/02/17 18:30:47
>>12
すいません、コマンド実行用のバッチファイルを作ってたんですが
違うファイルを修正していました。
そして、ftpに直して実行したら、上記のエラーはでなくなりました。
かわりに長いメッセージがずらずらと・・・
長いんで中略して張ります

FTP admin@172.26.2.109:2121 password:
FTP Could not set permissions to 0700 on /myproject/.bzr. 502 Command SITE not i
mplemented for CHMOD.
FTP Could not set permissions to 0700 on /myproject/.bzr/branch-lock. 502 Comman
d SITE not implemented for CHMOD.
FTP Could not set permissions to 0600 on /myproject/.bzr/README. 502 Command SIT
E not implemented for CHMOD.
FTP Could not set permissions to 0600 on /myproject/.bzr/branch-format. 502 Comm
and SITE not implemented for CHMOD.
FTP Could not set permissions to 0700 on /myproject/.bzr/repository. 502 Command
SITE not implemented for CHMOD.
FTP Could not set permissions to 0700 on /myproject/.bzr/repository/lock. 502 Co
mmand SITE not implemented for CHMOD.
bzr: ERROR: ftplib.error_temp: 450 Can't delete file /myproject/.bzr/repository/
no-working-trees.

<中略>

*** Bazaar has encountered an internal error. This probably indicates a
bug in Bazaar. You can help us fix it by filing a bug report at
URLリンク(bugs.launchpad.net)
including this traceback and a description of the problem.

これってサーバ側のディレクトリに書き込み権限がないってことなんでしょうか?

14:8
10/02/17 18:35:49
サーバ側に「myproject」フォルダは作成されてました。
(あと、その中に「.bzr」フォルダも)
けど、myprojectの中にあるファイルはアップされてませんでした
(ローカルではaddしてcommitしてあります)

15:methane
10/02/17 22:04:28
FTPの設定の問題ですね。
ファイルの削除ができないのではないでしょうか?
bzrを動かすには、ファイルの一覧、作成、削除、追記ができるFTPが必要です。(他にも必要だったかも…)
FTPには罠が多いので、できれば bzr+ssh か bzr+http での運用をおすすめします。

16:methane
10/02/18 00:25:50
bzr-upload というプラグインがあるので、これを使えばうまくいくかもしれないのですが、
私は使ったことがないのでよくわかっていません。
URLリンク(launchpad.net)

17:8
10/02/18 10:10:08
>>15

ご意見ありがとうございます。
すでにFTPサーバが立っているので、現状をいかしたままバージョン管理ツールを
導入できるかの検証でした。
bzr+sshを提案したいと思います。
ただ、現状FTPで管理している資産をスムーズに移行できるか・・・
これから調査してみます

いろいろ、ありがとうございました

18:デフォルトの名無しさん
10/02/18 21:29:26
>>15
うちのでは、http で公開しようとしたら、レンタルサーバーではftpの
同時接続セッション数に制限(同時3接続まで)があったために、
エラーになったので、ftpソフトで、.bzr をまるごと put することで、
回避しました。


19:methane
10/02/19 22:31:32
前スレ >>991
こちらで現象が発生していた原因がわかりました。
libsvn が開いていた plink.exe のプロセスが、リネームしようとしていたファイルを
開いてハンドルを握っていました。
他の svn クライアントでどうなるかは判らないのですが、 >>991 さんはどの
ssh クライアントを利用していますか?

20:methane
10/02/19 22:44:07
cygwin ssh でも再現したorz
現在 IRC で jelmer (bzr-??? 全部を開発してる神) に相談しています。

21:methane
10/02/19 23:14:11
libsvnとbzrの相性が悪いっぽい。
libsvn が ssh クライアントを子プロセスとして起動するときに、
親プロセスが持っているファイルハンドルを引き継いじゃう。
で、bzrが開いている作業中のファイルのハンドルをsshクライアントが
握るから、その作業中のファイルをリネームするときにsshクライアントが
邪魔する。

さーて、どうやって解決しようか。

22:デフォルトの名無しさん
10/02/19 23:30:32
>19
前スレ991です。
plink.exe は いわゆる ごった煮版(下記URL) に含まれている物を使っています。
環境変数 SVN_SSH=plink として使ってます。
URLリンク(yebisuya.dip.jp)

TortoiseSVNに含まれる TortoisePlink も使ってみましたが同じでした…

23:methane
10/02/20 03:05:47
>>22
>>21 でも少し触れていますが、 ssh クライアントの種類によらず発生する問題のようです。
どうやって直すかかなり悩んだんですが、Windowsはファイルを開くときに子プロセスに
ハンドルを引き継がない設定ができて、Pythonの標準ライブラリでその設定が使える
事に気づいて、あっさり直せました。
URLリンク(bugs.launchpad.net)

上手くいけば来週の 2.1.1 で入るかもしれませんが、レビュー待ち多いので
あまり期待はしないで下さい。

24:デフォルトの名無しさん
10/02/20 11:47:12
>23
おお。ありがとうございます。
早い段階で取りこまれると良いですね。


25:methane
10/02/20 15:04:17
URLリンク(code.edge.launchpad.net)
外部のdiffプログラムに非ASCIIファイル名を渡せない問題もマージリクエスト中。
2.1.1 のソースフリーズを来週月曜日にするって言ってるから、 svn+ssh の件も含めて
スケジュール的に微妙なところだな。
慌てて色々マージして問題起こしたくないだろうし。

26:デフォルトの名無しさん
10/02/22 01:48:21
ここに不具合報告して意味あるのかな?

一応報告しとく。
Bazaar Explorer v1.0.0rc1 で場所選択バーのスタイルを tab-group
にしたら Bazaar Explorer が起動しなくなりました。
ちょっと焦りましたが、 explorer.conf 編集して復旧しました。

27:methane
10/02/22 02:03:30
たぶん 1.0.0rc2 がもうすぐ出て、Windowsではそのスタイルを選べなくなるかと思います。
bzr 2.1 のパッケージは Bzr-explorer の 1.0rc に急遽対応したのでいろいろ
問題が出てきてます。
まだ 2.0 を使っている人は、 2.1.1 を待ったほうがいいかと思います。

28:デフォルトの名無しさん
10/02/23 18:46:24
\\host\bzr\rep といったUNCパス上で
右クリック→チェックアウト/ブランチ作成 などを選んだ際に
下記エラーが出るのですがこれは次版待ちでしょうか?

Traceback (most recent call last):
File "tbzrcommand.py", line 411, in main
WindowsError: [Error 3] 指定されたパスが見つかりません。: u'\\host\\bzr\\rep'

29:methane
10/02/23 21:09:28
どっかで先頭の \ が一つ抜けてしまってますね。
今は忙しいので今週のリリースには間に合わなさそうですが、
その次までにできれば直しておきます。

30:デフォルトの名無しさん
10/02/26 13:39:35
正直、生き残る自信はある?

31:methane
10/02/26 13:53:00
Ubuntu Linux や Launchpad がつぶれない限りは基盤が揺らぐことはないし、
現時点で git や hg に後れを取っているとはいえ順調にユーザー増えているし、
生き残るだけなら楽勝でしょう。
将来 svn を追い抜くためにTortoiseBZRを開発しています。

32:デフォルトの名無しさん
10/02/26 20:55:16
TortoiseBzrでbzr+sshにpush

33:デフォルトの名無しさん
10/02/27 17:09:42
TortoiseBzrでプロクシを指定してhttpとかからチェックアウトすることってどうやればできるの?
設定項目関係見てもそれっぽいのが見つからなかったんだけど

34:デフォルトの名無しさん
10/02/27 18:19:02
TortoiseBzrだけでgithub使いまわせるようになれば、Windowsユーザー的にはかなりおいしいだろ。
githubあるおかげでgit使わざるを得ない状況になってるが、Windowsユーザーは少し蚊帳の外になってるからな

35:デフォルトの名無しさん
10/02/27 18:20:46
今の時代、クライアントソフトも対になるキラーとなるwebサービスなりなんなりが必要な時代、
しかしLaunchpadがパッとしなさがある、というかgithubが強すぎるんだが。
Windows的にはCodePlexなのかもしれんが、俺はgithubでもいいと思うんだよね。

36:デフォルトの名無しさん
10/02/27 22:48:59
>>29
ちょっとソース読んでみたけど、bzrlib.osutils.get_unicode_argv()が何か変なことしてますね。

Linuxの時は単にunicodeに変換してるだけなのに、windowsの時はワイルドカード展開とかしてて、
\サインはエスケープ文字扱いになってる。
そんなのプラットフォームごとに変える理由が分からないけど、ほんとにこれ意図した動作なんかな。


37:デフォルトの名無しさん
10/02/27 23:20:43
Linux とかだと、シェルがワイルドカード展開するけど、
Windowsだとアプリ側でワイルドカードしてやらないと
いけないから、ワイルドカード展開しているような気が
します。


38:デフォルトの名無しさん
10/02/27 23:20:48
>>32


39:デフォルトの名無しさん
10/02/27 23:23:07
>>36
その程度の知識しか無くてコード読んでも意味ねーよ

40:デフォルトの名無しさん
10/02/27 23:35:00
>>39
キミの存在より意味があるよ!

41:methane
10/02/28 11:19:42
>>36
あぁ、そういえばbzr-2.1からWindowsのワイルドカード対応が目玉機能の一つになってるんだけど、
そこでエスケープもしていたような気がします。

>>35
Launchpadに比べてgithubの何が強いですか?
Wikiは判っているんですが、それ以外で。

42:methane
10/02/28 11:22:34
>>33
調べてないけど、たぶん http_proxy 環境変数か、IEのproxy設定のどちらかで
いけるかと。

43:methane
10/02/28 12:26:13
>>36 見つけた
URLリンク(bugs.launchpad.net)
2.2.0dev では直っていて、2.1.? にもbackportする方向に話が進んでいるのかな?
TortoiseBZRは何もしなくても直りそうです。

44:デフォルトの名無しさん
10/02/28 14:34:20
>>41
githubやたらgeek界隈で使われている印象。俺がRuby界隈のアンテナ張っているせいかもしれんが

45:methane
10/02/28 14:40:34
>>44
githubがというより、gitがgeek界隈で受け入れられているからだと思う。
Launchpadが取っつきにくい印象を持たれるのは、githubやbitbucketが
ユーザー主体でリポジトリをユーザーが持っているのに対して、
Launchpadがプロジェクト主体で個人リポジトリはあっても2級市民扱い
なのも原因なんだろうな。もっと個人ページを充実させないと。

46:デフォルトの名無しさん
10/02/28 15:17:40
いや単純に、重くてインターフェースが分かりにくいからじゃないかと思うんだが

47:methane
10/02/28 17:59:01
>>46
重いのは慣れるとむしろ最近軽くなったなーくらいに思うw

インタフェースが判りにくいのは、やっぱりプロジェクト主体だからだと思う。
githubやbitbucketはアカウント作成→push なのに、
Launchpad だとアカウント作成→プロジェクト作成→push→メインブランチに設定
が最小手順になってしまう。

48:デフォルトの名無しさん
10/02/28 19:39:21
ああ、そうかようやくわかってきた。
Launchpadはsourceforgeとか、google code projectっぽいんだよな、プロジェクトがメイン。
githubやbitbucketはユーザー主体でソーシャルになってる点が違うのか。

49:デフォルトの名無しさん
10/02/28 20:01:55
>>47
分かりにくい点はそこではなくて
表示される情報が多すぎて、機能を把握しにくいところ

と思ってたが、今見るとgithubも機能が増えてごちゃごちゃしてるな
昔はもっとシンプルな画面だったのに

50:デフォルトの名無しさん
10/03/01 12:18:33
今となっては一番大きいのは知名度の差…

51:methane
10/03/02 21:02:20
やっと復活したか。もう2ちゃんは対韓国鎖国したらいいのに。
svn+ssh:// が使えない件のBlog書いたので宣伝
URLリンク(dsas.blog.klab.org)

52:デフォルトの名無しさん
10/03/04 11:39:05
svn+sshの件、妙なマージのされ方してない?

53:methane
10/03/04 12:06:43
bzr-2.0 のブランチに対してマージリクエストかけてたから、まず2.0で取り込まれた
URLリンク(bazaar.launchpad.net)

2.1系やbzr.devには、bzr-2.0に入った修正をマージする形で取り込まれると思う。
実はBazaar開発でpqmの運用ルールがどうなってるかとかよく判ってない。

54:デフォルトの名無しさん
10/03/04 20:19:00
bzr-2.0にしたらversion-infoの--customがつかえなくなった。。

55:デフォルトの名無しさん
10/03/07 10:05:15
Windows版のBazaarの設定ってどの編に書き込まれているんでしょうか?
バックアップを取ったり他の環境に移したりしたいのですが

56:55
10/03/07 10:08:50
%APPDATA%\bazaar\2.0
にありました。
ありがとうございました。

57:デフォルトの名無しさん
10/03/08 16:43:11
windows installer 2.1.0-2 が出てる。
ツールバーとマージプラグインとヘルプの更新?

58:methane
10/03/08 18:45:07
>>57
インストーラー自体の問題(ツールバーの部品をパッケージに入れてなかった)の修正と、
各種プラグインのバージョンアップですね。 (explorer 1.0.0, qbzr 0.18.3, Tortoise 0.5.3)
2.1.1がいつ出てもおかしくない雰囲気ですが、2.1.0インストールして問題に困ってる方は
入れておいて損は無いです。

59:methane
10/03/21 14:24:31
会社にサーバー一台貸してもらったんで、とりあえずWiki準備中。
URLリンク(bazaar.lab.klab.org)
将来的には github みたいなのも作りたいけど、色々手を出しすぎて
時間がないのでしばらくはWikiだけ。

60:デフォルトの名無しさん
10/03/23 21:37:29
今、世間でもっとも使われているbazzerを
使ってみたいんですが、なにがおすすめですか?

61:デフォルトの名無しさん
10/03/23 21:44:30


62:デフォルトの名無しさん
10/03/23 23:15:27
ずっとバザールだと思ってたけど、実はバザーなのか

63:デフォルトの名無しさん
10/03/24 00:46:44
>>60
2.1.0がお薦めです。

64:methane
10/03/24 01:29:23
明日が2.1.1のコードフリーズなので、今週か来週に2.1.1が出そうですね。

65:デフォルトの名無しさん
10/03/24 01:55:14
smartサーバ(Apache 2.2 + mod_wsgi 3.1)を立ててそこにDigest認証を設定しているのですが、
この場所あるブランチにPython 2.6 + Bazaar 2.1.0 でhttpsでアクセスすると401で繋がりません。
しかし、Python 2.5 + Bazaar 2.1.0 で同じようにアクセスすると普通に繋がります。

あと、同じ場所に(2.6では繋がらないので)Python 2.5でProxy経由でアクセス(branch)すると、
httpsでは「ブランチが存在しない」と言われてしまいましたが、
httpでは普通にブランチできました。ちなみにProxyを経由しなければhttpsでもブランチできます。

これらってバグだと思うのですが、既知のバグなんでしょうか?
バグ報告してみようかとも思ったのですが英語の壁が厚く断念…。

66:デフォルトの名無しさん
10/03/24 01:59:55
>>62
ござーる

67:methane
10/03/24 09:39:34
>>65
Python 2.5 と 2.6 の環境で、
* pycurl がインストールされている・いない
* python から ssl モジュールをインポートできる・できない
みたいな違いはありませんか?
すぐには再現環境を用意できないのですが、
pycurl 無し & ssl モジュール無しの場合と、
pycurl 有り だけど pycurl が ssl 非サポートの場合、
https が使えなくなりそうな気がします。

68:65
10/03/25 03:00:43
>>67
レスありがとうございます。

>* pycurl がインストールされている・いない
>* python から ssl モジュールをインポートできる・できない
インストールされているかとインポートできるかの違いがよくわからないのですが、
これはインタプリタでimportしてエラーが出なければ良い、ということでしょうか?

そうだとして、import pycurl と import ssl を試したところ、
Python 2.6 では両方ともインストールされていましたが Python 2.5 では両方ともインストールされていませんでした。
インストールされていない方ではちゃんと動いてインストールされている方では動かないのは何かおかしな気もしますが…。

69:methane
10/03/25 06:05:48
>>68
手元のPython2.5では、import sslが通らなくてもimport _ssl が通りました。
(何か変わったんだっけ・・・)
Python2.6だとimport pycurlが通ると言うことなので、curlが怪しいです。
でも、単純にcurlがsslをサポートしていないのであれば、「ブランチが存在しない」
なんてエラーにはならず、'no https support' って出そうなんだけど・・・
.bzr.log の中に詳しい情報ありませんか?

他に試してみて欲しいことは、
1. https:// の代わりに https+urllib:// と https+pycurl:// を明示的に指定してみる。
2. bzr -Dhttp branch https+urllib:// みたいに、 -Dhttp オプションを付けてhttp のトレースを取得する
なんですが、お願いできますか?

70:methane
10/03/25 06:25:57
>>68
すいません、 >>65 をよく読んでいませんでした。
>>69 に加えて、
1. 環境(OS)
2. proxyの設定方法 (IEの設定か、http_proxy環境変数か)
3. 401が出る条件で、 https://ユーザー名@サーバー/ のようにユーザー名を指定するとどうなるか
も教えて頂けますか?

71:デフォルトの名無しさん
10/03/25 11:40:51
変更3点 → 1点ずつコミットしpush
という風に、
bzrで一部コミットって出来ますか?


72:71
10/03/25 12:10:13
bzr shelve/unshelve
で解決しました。



73:65
10/03/25 12:39:02
>>70
まず環境ですが、Windows XP + インストーラ版(Python 2.5) と、
Linux(Gentoo) + 標準のPythonのバージョンを2.6にして使用 + Portage(パッケージ管理ソフト)で入れたbzr 2.1.0 と、
2.5 で試すために取ってきた bzr-2.1.0.tar.gz (python2.5 bzr ... のように使う)
で試しています。proxy はどちらも環境変数で指定しています。

import _ssl ならこちらの Python2.5 の環境でも通るようです。

Python 2.6 にて、https+urllib:// を使ったところ認証は通るようになりました。
どうやらここはPythonのバージョンではなくpycurlっぽいですね。
当初の問題の 1 つである「認証が通らない」はurllibを使えばとりあえず何とかなりそうです。

ちなみに、https+pycurl://ユーザ名@サーバ/ で接続したところ、Traceback を伴うエラーが出ました。
以下ログです。接続先ホスト名とユーザ名は変更してあります。
ユーザ名指定なし: URLリンク(pastebin.com)
ユーザ名指定あり: URLリンク(pastebin.com)

もう 1 つの問題の、proxy + https 環境下で「ブランチが存在しない」正確には以下のエラー
bzr: ERROR: Not a branch: "URLリンク(...)<)
Linux: URLリンク(pastebin.com)

あと関係ないかも知れませんが、Digest認証のパスワードは、どうせ authentication.conf に
書かないといけないからと思い自動生成した 128 文字の英数字から成るパスワードを使っています。

74:methane
10/03/25 15:43:18
>>73
pycurlに関しては、複数の問題があるようです。
一つ目は、ユーザー名@ をつけないでダイジェスト認証に入ると401になるので、そこで
ユーザー名とパスワードをユーザーに訊くべきなのに終了してしまっている。
二つ目は、 URLリンク(bugs.launchpad.net)
どちらも報告済みですね。

Not a branch の方ですが、ひょっとするとPython2.5の urllib が https に対応していないのかも。
Windows版のBazaarに使ってるPythonを2.6にアップグレードしないとなぁ。。。

75:methane
10/03/25 15:50:04
いや、ログを見るとちゃんと通信まで行ってるのか。。。
うわー、わかんね。

重ね重ねお手数をおかけしますが、
-Dhttp の代わりに -Dhpssdetail -Dhpssvfs をつけて、 Not a branch を再現して頂けますか?

76:65
10/03/25 16:37:20
>>75
やってみました。
一応貼っておきますが、有益な情報は出てないっぽいです。
Windows: URLリンク(pastebin.com)
Linux: URLリンク(pastebin.com)

77:methane
10/03/25 18:33:20
>>76
.bzr.log の方ではなくて、標準エラー出力に詳しい情報って出てきませんでした?
-Dhpss って自分でもあまり使わないから、使い方間違っていたかも。。。

78:65
10/03/25 18:45:48
出てないですね。
bzr: ERROR: Not a branch: "https+urllib://example.com/bzr/test/".
bzr: warning: some compiled extensions could not be loaded; see <URLリンク(answers.launchpad.net)
これだけです。

79:デフォルトの名無しさん
10/03/26 18:43:21
問題あるかどうかも分からないし、既出かどうかも分からないのですが、
あれ?と思った動作があったので記載します。

Windows XP SP3をセーフモードで起動する機会があったのですが、
その際、画面右下のシステムトレイにTortoise Bazaarのアイコンだけが
出る、というような現象になりました。
複数回起動したのですが、いずれもこの状態です。

通常起動時には、アンチウイルスソフト他複数のアイコンが並んでいるのですが、
セーフモード時にはそれらは表示されておらず、
唯一このアプリのアイコンだけが表示されていたので、なんだろ、という訳です。

80:デフォルトの名無しさん
10/03/26 22:52:18
bazzarで、

svn update
cvs update

に対応するコマンドって、何なんでしょうか?

81:methane
10/03/26 23:37:08
>>78
URLリンク(bugs.python.org)
urllib + https + proxy が失敗するのは、Python のバグみたいですね。
2.6からは修正されているけれど、2.5では修正されていないみたいです。

82:methane
10/03/26 23:39:05
>>79
トレイアイコンはキャッシュプロセスが表示しています。
TortoiseBZRは、シェル拡張がExplorerのプロセス内で動いて、そこから
バックグラウンドのキャッシュプロセスを立ち上げます。

なので、通常の自動起動の流れとは違うんですが、
Windowsはセーフモードでもシェル拡張を読み込んじゃうんでしょうね・・・

83:methane
10/03/26 23:39:54
>>80
bzr pull か、状況によっては bzr up になると思います。

84:80
10/03/27 00:05:32
>>83
ありがとうございます。

85:65
10/03/27 01:02:53
>>81
と言う事は、現状ではWindowsではStandalone版ではなく
Python 2.6 basedの方を使えば良いということですね。
今手元がproxy環境ではないので試せませんが、何とかなりそうです。
ありがとうございます。

86:デフォルトの名無しさん
10/03/27 03:27:31
日本語 Windows で bzr 2.1.0 スタンドアローン版 を使っています。
どちらかというと Xmloutput プラグインの質問かもしれませんが…

コマンドラインから bzr log --xml で XML 形式で出力させようとするとエンコーディング指令が cp932,
実際の文字コードが UTF-16 というおかしなファイルが出力されてしまいます。
これを UTF-8 で正しく出力させることはできるのでしょうか。

試しに chcp 65001 とかやってみましたが、状況は変わりませんでした。

87:デフォルトの名無しさん
10/03/27 03:41:21
プロパティでフォントを変更してからじゃないと。

88:methane
10/03/27 10:57:23
>>86
いま、まだパッケージャーMLのみでアナウンスされているbzr-2.1.1を使っているのですが、
bzr log --xml > foo.xml して foo.xml を見たところ、エンコーディング宣言も文字エンコーディングも
cp932になっていました。

89:86
10/03/27 12:16:21
説明がいろいろと不足していました。
先の結果は、実際は PowerShell 上で bzr log --xml > test.xml として
出力を直接ファイルにリダイレクトしたものです。

>>87
変更してみたのですが結果変わらずでした。表示フォントは直接の関係はなさそうです。

>>88
UTF-16 で出力されていたのは PowerShell が勝手に変換していただけで、
bzr の問題では無かったようです。おさわがせしました。
バッチファイル経由では cp932 で出力されました。

ただ、できれば UTF-8 で出力させたかったので調べたところ、同様の要望はすでに挙がっていました。
xmloutput 0.8.7 からはデフォルト UTF-8 で、っていう方向で話しが進んでいるようです。

URLリンク(bugs.launchpad.net)

ありがとうございました。





90:デフォルトの名無しさん
10/03/27 13:29:05
うーむ、TortoiseBazaar0.3.1でpushしよとしたらこんなエラーが出た。
--
bzr: ERROR: Unprintable exception PermissionDenied: dict={'path': u'I:/dropBox/My Dropbox/repo/.bzr/repository/indices/9f0bfd37a92d53d839d0078e84101659.rix', '_preformatted_string': None, 'extra': ': [Error 32]
--
cygwinからpushできたから特に問題はないけどなんだろ。

91:methane
10/03/27 16:35:54
>>90
PermissionDenied でファイルアクセスができなかった、という以上の情報は読み取れませんね。
バージョンが古いので、もっと新しいバージョンだったらまた違うかもしれません。

92:デフォルトの名無しさん
10/03/27 17:06:49
>>91
情報THX! 手が開いたら新しいのに入れ替えてみま。

93:デフォルトの名無しさん
10/03/28 12:51:01
2.1.1 出ましたね。

94:デフォルトの名無しさん
10/03/29 14:41:42
おお、さっそくインストールしる > 2.1.1

95:デフォルトの名無しさん
10/03/29 15:14:15
>>94
「する」なのか「しろ」なのか判らんがw
取り敢えずインストールした。
TortoiseBazaarは0.5.4になっていた。

>90の問題は(2.1.1インストール前でも)再現できないので直ったかどうかは不明。

96:デフォルトの名無しさん
10/03/29 23:07:56
2.1.1でタスクトレイのメニューを実行するとコマンドプロンプトが出てくるけど前からだった?

97:methane
10/03/29 23:31:41
>>96
俺のミスですw

tbzrcommandw.exe や tbzrcachew.exe を廃止しようとしてたんだけど、
tbzrcommand.exe を普通に実行するとコマンドプロンプトが表示されるので、
起動時にフラグを付けて起動しないといけないんですよ。
それで、タスクトレイからコマンドを実行するところだけフラグを付け忘れました。

今、Program Files\Bazaar の中から tbzrcommandw.exe と tbzrcachew.exe を
削除しても問題なく動くはずです。

98:デフォルトの名無しさん
10/03/30 01:54:27
ここはTortoiseBzr派が多いのかな。
最近BazaarExplorer使い始めたのだが、あの邪魔臭いDOS窓はどうにかならんのだろうか。

99:methane
10/03/30 08:42:24
>>98
TortoiseBZRのコンテキストメニューからBazaarExplorerを起動するとDOS窓出ません。
あと、
URLリンク(dl.dropbox.com)
これがお試し版のbzrw.exeで、これを使うようにすればDOS窓出ません。
使い方は、bzr.exeのあるディレクトリにbzrw.exeを放り込んで、Bazaar Explorerのショートカットを
書き換えるだけです。
問題なければ次のパッケージに入れてもらおうと思うので、試してみて下さい。

100:デフォルトの名無しさん
10/03/30 14:14:39
Bazaar Explorerって、日本語にできるの?
なんかそれらしい.moやら.poやらあるみたいだけど、設定がよくわからん

101:methane
10/03/30 14:50:40
>>100
あれ、日本語にならなかったですか?
ログみたいな画面だと日本語になっていますか?
環境変数に LANG=ja と設定して見て下さい。

qbzr はLANGが設定されていないときもWindowsの言語設定を調べているんですが、
Bazaar Explorerが同じ事をしていたかどうか自信がない。

102:デフォルトの名無しさん
10/03/30 14:55:24
>>101
LANG=ja でいけました。thx

もともとLANG=1041って入っていたんだが、何のソフトの設定だったんだろう…

103:methane
10/03/30 15:03:10
>>102
なるほど、LANGが設定されていたのでWindowsの言語設定よりもLANGを優先して、
でもLANGがjaとかesとかじゃなかったから言語がわからなくて英語になってしまっていたんですね。
多分、LANG環境変数を消しても日本語になると思います。

104:デフォルトの名無しさん
10/03/31 02:26:14
>>99
bzrw.exeいただきました。
これってbzr.exeの全機能を持ったコンソールアプリでないwinアプリですよね?
コンソール出力をリダイレクトして、DOS窓出さないようにbzr.exeのプロセスを起動させる
ラッパーみたいなやつの方がいいんじゃないですかね。
それなら一度作っちゃえば多分メンテナンス必要ないでしょうし。

とりあえず現バージョンはありがたくこれ使わせていただきます。

105:methane
10/03/31 08:35:18
bzrのほとんどの機能は、libディレクトリ以下にあるdllやzipファイルの中にあります。
bzr.exeはもともとただの起動スクリプトで、同じスクリプトの標準出力を
殺したバージョンがbzrw.exeになります。

なのであまりメンテナンスは要らないのですが、確かにbzr.exeを起動するだけの
ツールにした方が、今よりさらに独立性が上がりますね。
次回bzrwに修正が必要になった時に、その方式も検討してみます。

106:デフォルトの名無しさん
10/04/01 11:41:14
Bazaar ExplorerってUIのデザインが悪すぎ。
ツールボックスとタブのレイアウトとか。
そもそもようこそ画面っているのか?

107:デフォルトの名無しさん
10/04/01 15:48:27
2.1.1のTortoiseBzrを使っているうちのチーム員から。
亀Bzrでメニューから「閲覧」で出るダイアログで、初期は「リビジョン」の項目に"wt:"と表示されるそうな。
そこを書き換えればリビジョン指定で一覧表示になるからそれは便利でいいそうだけど、最新リビジョンが
最初から入っていたらリビジョン番号の確認するのに便利なのになぁとのこと。
私は基本的にcuiを使うし、そもそも手元に環境がないので確認できないのでよく判らんが……

108:methane
10/04/01 16:32:07
>>107
wt: はワーキングツリーの意味です。リネームや移動はここでできます。
最新リビジョンだと、リビジョン番号を確認しないでも -1 を入れると良いです。
が、最新リビジョンを見たい場合がよく判らない・・・差分を見るならdiffだしなぁ。

109:デフォルトの名無しさん
10/04/01 17:17:15
>>108
いつもいつも、レスTHX!
最新リビジョンを見たいと言うより、revnoを確認したいということのようです。
logだと非力なマシンだと遅いからかと。
# 私がすぐrevno聞くからなぁw

まぁ、私なら素直にcuiでbzr revnoするんですが。

110:デフォルトの名無しさん
10/04/01 19:59:47
2.1.1 で [Tortoise Bazaar] → [ログ] → どれかリビジョンを右クリック
→ [このリビジョンにタグを負荷する] → タグ名に何か入力 → [OK] で、
タグが付いて、タグも表示されますが、この状態で、[x] または [閉じる]
で閉じると、

bzr:ERROR: [Errno 9] Bad file descriptor

というエラーがでます。

たぶん閉じるときにエラーが出てるだけだと思うので、実用上は
問題ないと思いますが、いちおうバグ報告させていただきました。

111:デフォルトの名無しさん
10/04/02 04:31:36
RHEL4 or 5でGUIで最新のbzrを使う方法はないのだろうか。
ただのユーザなのでQT前提とか無理っぽい。

112:デフォルトの名無しさん
10/04/03 21:22:59
質問です。

$ cvs update -dPrEMACS_PRETEST_23_1_95
みたいなことは、以下のコマンドでいいのでしょうか?

$ bzr pull -v -rtag:EMACS_PRETEST_23_1_95 --overwrite


113:methane
10/04/03 22:55:36
>>112
bzr 2.1 以上を使ってください。
bzr up -r tag:EMACS_PRETEST_23_1_95
で行けます。

pull は、uncommitみたいにローカルのブランチを巻き戻してしまうので、もし自分が開発している
未pushのリビジョンがあるとちょっと複雑な回復手順が必要です。

114:デフォルトの名無しさん
10/04/04 00:55:49
>>113

なるほど、ありがとうございます。ところで、dry-runオプションとかは無いのでしょうか?

115:デフォルトの名無しさん
10/04/04 13:26:43
URLリンク(bugs.launchpad.net)

何だか、怖いねぇ。。

116:デフォルトの名無しさん
10/04/04 13:28:22
>>115

こういうのは、svn cleanupみたいなコマンド作って処理して欲しいのに。。

117:デフォルトの名無しさん
10/04/04 19:31:03
Cygwin版の2.1マダー

118:デフォルトの名無しさん
10/04/07 13:51:17
中央のほかに2箇所で作業してて、1箇所で中央に push、もう1箇所で中央から pull しようとするとエラー。
Diverged Branches ということらしいが、このとき出たエラーは「すでにあるファイルは作成できない」とかいう
ファイルシステムに関するらしいエラーだった。

結局俺がしたかったことは、merge --pull だったんだけど、わかりにくい。pull したときに Diverged Branches
の旨のメッセージが出て、pull --merge であるべきじゃないかと個人的には思うんだがどうだろう。

あと、上記のように取り込んだ結果、x.1.1 などの「横道」リビジョンができるけど、これらのリビジョンを
update -r で取り出そうとすると、そんなリビジョンはないと言われた。qlog で見てグレーで表示されている
リビジョンしか取り出せないらしいけど、見えてるリビジョンが取り出せないってどういうことよ。

119:methane
10/04/07 23:49:59
>>118
多分、pushしちゃっているせいでメインラインが切り替わっていたんでしょうね。
merge --pull は、基本 merge だけど安全に pull にできることきは pull にするという意味なので、
pull --merge だと「ただのpulなのになんでmerge???」となってしまいます。

merge --pull による pull 動作に相当する pull のオプションは、 pull --overwrite ですが、
これは安全にpullできない時にもpullしてしまうので、 merge --pull が正解です。

メインライン以外に対してのupdateは、試してみたら確かに失敗してしまいました。
なんでだろう・・・訊いておきます。

120:methane
10/04/08 01:00:29
URLリンク(bugs.launchpad.net)
update -r でメインライン以外のリビジョンが指定できないのは、
現在修正のレビュー中らしいです。
2.1.2には入るかな。

121:118
10/04/08 10:19:57
>>119
> pull --merge だと「ただのpulなのになんでmerge???」となってしまいます。

レスさんくす。
hg を先に使い始めた弊害かな?まずは pull ありきって感覚なんだよね。
merge しようとしたときに「手元にないリビジョン全部持ってくるなら
--pull オプション使いなさいよー」ってメッセージでも出ればいいんだけど、
変なファイルエラーが出たからねえ。難儀した。エラーは忘れた。

update に関しては、そういうもんだバカで終わるかと思ったけど、不具合(?)だったのね。
直るといいなあ。っていうか、結構困りますな。

122:デフォルトの名無しさん
10/04/08 10:59:02
あーなんだ、メインライン以外のリビジョン引っ張って来れないのは仕様かと思ってたw
私の場合、余り必要がないから困ってなかった。

123:methane
10/04/08 19:19:46
今日社内で、Bazaar入門者向けのマージの説明をしました。
同じように社内でBazaarの啓蒙活動している人がいたら、どうぞ使ってください。
デモ入れて10分用です。
URLリンク(docs.google.com)

124:デフォルトの名無しさん
10/04/12 07:28:13
いま /repo にリポジトリ兼ブランチがあって、
これをリポジトリのルートは変えずにブランチだけを /repo/trunk に移したいのですが
どういう操作をすればよいですか?

125:デフォルトの名無しさん
10/04/12 12:13:02
>>124
bzr branch /repo /repo/trunk
するだけでいいのでは?
実験してみることをお勧め。

>>123
これはいい。
しかし、残念ながらうちの会社だとdiff+patchさえ通じない……

126:124
10/04/12 18:48:34
ありがとうございます。結局

mv ./repo ./repo/trunk
cd ./repo
bzr init-repo .
cd ./trunk
bzr reconfigure --use-shared

としました。

127:デフォルトの名無しさん
10/04/12 18:54:50
んな馬鹿な

128:デフォルトの名無しさん
10/04/13 23:54:29
二つほど質問を。

・ssh アクセスをするとき、どの ssh クライアントを使うかはどこで設定できるんでしょうか。
cygwin の ssh クライアントを使いたいんですが。

・任意のリビジョンに含まれるファイルをローカルのファイルと比較するにはどうすればいいんでしょう。
たとえば Tortoise のログ画面でリビジョンを選ぶと右下にそのリビジョンに含まれるファイルが表示され、
右クリックのメニュから差異の表示が選べますが、これは一つ前のリビジョンとの比較となります。
ローカルと比較したいんですが、やり方ありませんか。
あと、任意のリビジョン間ならそのリビジョン間を選択することでできますが、リビジョン間を全選択することになり
あまり気持ちのよいものではありません。これしかないんでしょうか。

微妙に3つ質問してる気もしますが、よろしくお願いします。

129:methane
10/04/14 01:01:50
>>128
1. BZR_SSH環境変数です。paramiko以外を使う場合は、事前にsshログインできることを確認して下さい。
最低でも、cygwinのbash上ではないコマンドラインから、
ssh yourhost "bzr version"
ができる事は確認しておいた方が良いと思います。

2. コマンドラインからなら、bzr diff --using="/path/to/difftool" -rN のようにしてNと作業ツリーの比較が
できますが、qlogの上からは作業ツリーを選択できなかったかもしれません。
qdiff の改良案に、qdiffから2ペインのログを呼び出してリビジョンを選択できるようにするものがあるので、
将来的にはqdiffがお望み通りのツールになるかもしれません。

130:デフォルトの名無しさん
10/04/14 09:35:25
>>129
レスありがとうございます。

ローカルとの比較はコマンドラインからしかできないんですか。
エイリアスも設定できるようですが、ちょい面倒ですね。
仕事で個人的に使い始めたんですが、ちょっと積極的には推しにくいなあ……。
分散と集中兼ねてるところがいいと思ったんですけど。
TortoiseHg だと、右クリックメニューに diff to local とかありますね。

131:デフォルトの名無しさん
10/04/16 10:43:09
分けて作ってしまったリポジトリをまとめる方法ってないでしょうかね。
repo を共有リポジトリとして proj1、proj2、proj3 の3つのリポジトリを作ってしまったんですが、
repo をリポジトリにして proj1、proj2、proj3 は単なるフォルダとして統合したいんです。

132:methane
10/04/16 10:49:58
>>131
bzr init main
cd main
mv ../proj1 ../proj2 ../proj3 .
bzr join proj1
bzr join proj2
bzr join proj3
bzr commit

で、どうでしょう?

133:デフォルトの名無しさん
10/04/16 13:09:23
>>132
できました、さすがです。
.bzr.retired.0 は消してしまってもかまわないんでしょうか。

134:デフォルトの名無しさん
10/04/16 13:49:00
問題ないっすね。ブランチすればないわけだし。

135:デフォルトの名無しさん
10/04/17 20:24:21
PythonベースでインストールしたbzrにTortoiseBZRを乗せたら、 >>110 と同じエラーが起こった。
コンソールが無いのにstdoutやstderrに何か出力しようとしてエラーになってるってことかな?




136:デフォルトの名無しさん
10/04/17 22:00:24
>>132
統合はうまくいったんですが、 join した時点より前に戻れなくなってしまいました。
join したところを新たなスタート地点とするしかないんでしょうか。若干困る。

あと、スタックブランチはどういうときに有用なんでしょう?
ユーザーガイド読んでみましたが、文章だけでつらつらと説明されてもよくわからない。

137:デフォルトの名無しさん
10/04/17 22:33:53
>>136
追記。
リビジョングラフ(qlog?)と bzr log で表示されるリビジョン番号が合ってませんね。
困ったぞこりゃ。

138:methane
10/04/18 15:51:47
>>130
qannotateでは、最新リビジョンとワーキングツリーとの比較もできます。
qlogにワーキングツリーを表示した方が良いんだろうな。
>>135
ですです。
>>136-137
わー、ごめんなさい。
joinでは履歴全部保存されるはずなんだけどなぁ。
コマンドラインで、bzr log -n ってすると、古い方の履歴も表示されませんか?


139:デフォルトの名無しさん
10/04/18 19:32:01
>>138
> joinでは履歴全部保存されるはずなんだけどなぁ。
> コマンドラインで、bzr log -n ってすると、古い方の履歴も表示されませんか?

join の前後はグラフではこんな感じ。
URLリンク(www.dotup.org)

bzr log で -n なしだとこう。
URLリンク(www.dotup.org)

実際のリビジョン1が、グラフでは17になっています(グラフは -n 0 付き?)。
実は >>128 も私ですが、教えていただいた bzr diff -r を、
グラフを見ながらできなくなる(というか面倒)のでちょっと困っています。
私は事情わかっているのでいいのですが、ほかのメンバーが……。

あと、今回は初期なんでそれほど問題はないんですが、join より前に
戻れないんですよね。リビジョンにマイナスの番号指定しても
最新からの相対指定になるだけだし。

ちなみに、前スレにあった bzr merge -r0.. ../hoge とかで統合しようとしても、
やはりマージした時点がリビジョン1になり、それより前はマイナスになりました。

グラフにちゃんと番号が出て、join よりも前に戻れるようになるとうれしいんですけどね。

140:デフォルトの名無しさん
10/04/19 01:01:06
bazaarって、gitやhgに比べて、どの辺がよいの?

141:デフォルトの名無しさん
10/04/19 08:04:07
repositoryとbranchってどう違うの.

142:methane
10/04/19 09:03:57
>>139
履歴自体は保存されているけれど、bzr logを-nなしで実行したときの
バージョン番号が狂ってる感じですね。
joinすると、中ではmergeしたことになるので、joinしたリビジョンの
中の履歴には数字3つのリビジョンでしかアクセスできません。
bzr log -n なら、qlogと同じような、数字三つのリビジョン番号が
出てきませんか?

143:methane
10/04/19 09:09:13
>>140
URLリンク(bazaar.lab.klab.org)
に書いてみました。

>>141
リポジトリはリビジョンを格納するデータベース役に徹して、
履歴は管理しません。
ブランチ1つが1本の履歴を管理することになります。

144:デフォルトの名無しさん
10/04/19 10:37:48
「リビジョン」「履歴」が指し示すものがそれぞれどこまでを含むものなのかが
わからない。
各リビジョンを管理するなら、変更履歴を管理するのと大差ないと思うんだけど……

145:デフォルトの名無しさん
10/04/19 11:54:13
>>142
-n の引数がよくわからないんですが、(汗
bzr log -n 0 とやると一番下が1で始まり、マージした 0.1.1 とかのリビジョンも
表示されます。でも内部の処理は -n なしのリビジョンで動いてる感じですね。

今まさにソースを何人かに分散したところで、一段落したところで一番初めの
リビジョンに(私が)マージすれば何とかなるかと考えてたんですが、封じられてしまいました。

まあくどいですが、まだ初期なんで、マージ時点からでもまだなんとかなるんですけど。
とりあえずこのままいってみます。改善策あれば教えていただけるとありがたいです。

146:methane
10/04/20 12:37:56
>>145
すみません、 -n0 の間違いでした。
その、0.1.1とかのリビジョン番号を使ってください。
たとえば、 -r0.1.1..0.1.8 みたいに利用できます。
数字1つのリビジョンはメインラインのリビジョンで、
数字3つのリビジョンは、マージされたブランチのリビジョンになります。

数字3つのリビジョンが嫌な場合は、通常のマージをしない方法で履歴を結合する必要があります。
bzr-rewriteを使えばできる気がしますが、あまりrewriteを使わないので判りません。

147:デフォルトの名無しさん
10/04/20 13:42:13
コミットしようとすると、

Unable to obtain lock file:///C:/Users/hoge/My%20Documents/work/.bzr/branch/lock
held by user@hoge.co.jp on host hostmachine [process #4960]
locked 1 hour, 35 minutes ago
Will continue to try until 13:38:36, unless you press Ctrl-C.
See "bzr help break-lock" for more.

てなエラーが出ます。

bzr info -v で見てみると、

Lock status:
working tree: unlocked
branch: locked
repository: unlocked

ということらしいのですが、working tree、branch ともに
bzr break-lock しても改善されません。
どうすれば元に戻るんでしょう?

148:methane
10/04/20 13:55:17
>>147
.bzr/branch/lock
という名前のディレクトリはありませんか?
あったら、手動で消してみてください。
無かったら、そこに新規ディレクトリを作成できるかどうか試してみてください。

149:デフォルトの名無しさん
10/04/20 14:00:56
>>148
いけました。ありがとうございます。あーあせった。
なんでこんなことになるんでしょうねえ。
Bazaar Explorer は終了時に毎回死んでますが。

150:デフォルトの名無しさん
10/04/20 18:50:03
>>146
取り出したかったのはメインラインの1だったんですが(join のずっと前)、
revid を指定したら取り出せました。
数の多いリビジョン No は別に嫌いではありません。

151:デフォルトの名無しさん
10/04/22 13:42:43
svnからチェックアウトしたブランチに対してmergeを実行するとデータの不整合ができてしまうのは
そろそろ何とかならないものか。

152:methane
10/04/22 14:45:59
>>151
そろそろ何とかなってない?
svnが中央にあるブランチで、最近merge使っていて特に問題ないんだけど、
激しい使い方はしていないので地雷を踏んでないだけかもしれない。
問題が起こるんであれば、できれば再現手順を教えてください。

153:デフォルトの名無しさん
10/04/22 15:44:31
>>152
いつもどうもです。

例えば、svnからチェックアウトしたブランチにmergeをかけて、こういうリビジョングラフができた場合

 r11 手元の変更をマージ
  r10.1.1 foo.txtを修正
 r10 不具合修正
 ・・・

これをsvnにコミットすると、svnの履歴にはメインラインしか反映されないので、r10.1.1に対応する
リビジョンは生成されませんが、foo.txtがr10.1.1で変更されたという情報は残ります。
で、他にもbzr-svnを使っている人がいた場合、そちらのブランチでupdateをかけてもr10.1.1にあたる
リビジョンは出来ないので、annotate foo.txt とか、qbrowse -r -1 とかがクラッシュするようになります。

launchpadにも何件かバグ報告が上がってるみたいですが、あまり問題視されて無いみたいです。
何か回避方法があるのかな?

私は、bzr-svnを使うときはrebaseでリビジョンを直列化してからsvnに上げるようにして回避していま
す。


154:デフォルトの名無しさん
10/04/23 19:08:34
parent branchとsubmit branchとpush branchの違いを教えてください

155:デフォルトの名無しさん
10/04/24 14:11:00
また limbo だとか pending-deletion だとかが何たらかんたらといって操作できなくなった。
消したら直ったけど、いちいち変になってリポジトリをいじらいと直らないようなのは困るな。
しょっちゅう Bazaar Explorer が死ぬのと関係あるのかな。

156:デフォルトの名無しさん
10/04/24 18:52:59
親ブランチからmergeしたときの、親ブランチのリビジョンを後からコマンドラインで
確認する方法はありますか?

157:methane
10/04/25 12:18:25
>>153
なるほど、確かに、マージしたブランチが branches/ から持ってきた物でないと、
別の人が trunk/ から持ってきたブランチにはリビジョンが含まれないので、
ghost revision (ブランチに含まれるのに、リポジトリに入ってないリビジョン)に
なりますね。

将来、History Horizonが導入されるときには、ghost revisionがあってもクラッシュ
しないように改良されるかなぁ。

158:methane
10/04/25 12:22:00
>>154
parent_branch は、 bzr branch でブランチを作ったときの、元になるリビジョン。

submit_branch は、 bzr merge や bzr send で、対象ブランチを指定しなかったときに利用される
ブランチ。 bzr merge --remember で修正できます。

push_branch は、 bzr push 用で、同じく --remember で修正できる。

159:methane
10/04/25 12:24:55
>>155
bzr-2.2 はマージ強化を目標に掲げているので、、、このバグも修正されるかと。

>>156
リビジョンIDは、マージしたリビジョンのログを見れば判ります。
リビジョンNoは、ブランチ固有だし、append_revision_onlyを設定しないと変動して
しまうような物なので、マージ元ブランチを直接見ないと判らないですね。

160:デフォルトの名無しさん
10/04/25 13:09:53
>>159
> bzr-2.2 はマージ強化を目標に掲げているので、、、このバグも修正されるかと。

え゛!?すでに業務で使ってるんだけど、マージ動作自体に問題があるとかじゃないよね、ね、ね!?
心臓に悪いんで、操作不能になるのとか勘弁してもらいたいです。

161:デフォルトの名無しさん
10/04/25 13:26:49
>>160
たぶん強化というのはバグ修正ではなくてパワーアップだと思いますが

162:methane
10/04/25 16:43:16
>>160
>>161 の言うとおりです。
普通に使えている分には致命的な問題は無いはずなので、安心してください。

163:デフォルトの名無しさん
10/04/25 17:42:29
>>153
> bzr-svnを使うときはrebaseでリビジョンを直列化
について、詳しく教えてもらってよいでしょうか?
bzrブランチでの複数回コミットを、svn上の1コミットとしてpullしたいのです。

164:methane
10/04/25 18:19:55
>>163
単に複数コミットをまとめたいだけなら、uncommit -r でまとめたいリビジョンの手前まで巻き戻して、
commit で単一リビジョンにしてしまう方が楽だと思います。

rebaseは、分岐したブランチを普通にマージする代わりに、1本のブランチに再構成するものです。

165:デフォルトの名無しさん
10/04/26 01:23:57
以前、ここか、VCSの総合スレで、
HOMEとかの単体ファイルを bzr で管理する
方法が書き込まれていたと思うんですが、
教えていただけないでしょうか?

今、home のファイルを弄っていて、
ふと、思い出したんですが、
見つけられませんで…。

bzr の機能 (rich-rootとか)を利用して、
うまく管理する方法があるんでしょうか?


166:163
10/04/26 12:34:11
>>164
ありがとうございます。uncommitで戻してcommit&pushで1コミットにできました。
--
163ではpushをpullと書き間違えてました。失礼しました。

167:methane
10/04/26 12:43:36
>>165
うーん、HOME以下で直接 bzr init するのはあまりおすすめできないです。
HOME/work/some-proj が hg のリポジトリだったときに、間違って
bzr add foo/ とかすると・・・

私の場合、symlinkを使っています。こんな感じで。
bzr init conf
mv .vimrc .vim .screenrc conf/
ln -s conf/.vimrc
ln -s conf/.vim
ln -s conf/.screenrc
cd conf
bzr add .vimrc .vim .screenrc
bzr commit -m "Initial import"

168:デフォルトの名無しさん
10/04/26 12:59:13
概ね同意。その手の設定ファイルは他の環境でも使うしいろんなツールが勝手に$HOMEに置くから、
管理したいならそもそも$HOMEにじか置きはお勧めできない。

bzrだとファイルサーバからリポジトリごとダウンロード(bzr branchでもいざとなればコピーでもw)できるから
設定ファイルをRCSで管理している連中の移行促進にも役立つw

169:デフォルトの名無しさん
10/04/29 12:04:41
リポジトリ毎の改行コードの指定ってできる?
まだやってないけど、Cygwin 用のスクリプトなんかは LF じゃないと
動かなさそうな予感。

170:デフォルトの名無しさん
10/04/29 12:15:20
>>169
ファイル毎に、そのファイルの改行コードのまま変換されずに
管理されると思いますが、CRLFで作ったファイルを強引に
LFに変換したい、ということですか?

171:デフォルトの名無しさん
10/04/29 13:17:01
>>170
あら、そうなの?
てっきり OS ごとの改行コードで取り出されるもんだと思ってた。

すると逆に、

> ファイル毎に、そのファイルの改行コードのまま変換されずに
> 管理されると思いますが、

これ、OS ごとの改行コードで取り出して欲しい場合はどうなるんだろう。
いまどきその程度で問題になることは少ないと思うけど、クロスプラットホームで
コードいじったりするときちょっと気になる。

172:methane
10/04/29 14:08:34
>>171
自分でruleを書けばできます。
詳しくは bzr help eol で。

173:デフォルトの名無しさん
10/05/10 21:14:45
bazaarのレポジトリ配下で、patchを当てて、bzr pullしても、差分があると怒られないのですが。
これはこういうものなのでしょうか。基本的なことですみません。

CVSの例ですと、以下のようになります。

$ cd ~/cvs_work/hoge
$ cvs update -dP

# その後、~/cvs_work/hoge/hoge.cに変更を加える

$ cvs update -dP
M hoge.c

174:デフォルトの名無しさん
10/05/11 00:00:29
>>173
pull先でhoge.cが更新されていなければ、ローカルのhoge.cが変更されていても警告されない。

175:173
10/05/11 00:03:35
>>174
すみません、

bzr status

でわかりました。ありがとうございます。


176:デフォルトの名無しさん
10/05/11 00:14:19
あーなんだ、cvs -n updateでstatusを確認する習慣が付いていたのか。
それなら最初から「変更の有無を知りたい」とか書いてくれればいいに。

処で今日、bzr exportで取り出したファイルのタイムスタンプをコミット日時にしたいといわれた。
さて、どうしたもんかのう……

177:デフォルトの名無しさん
10/05/11 09:37:14
鯖にできるマシンがないので、今のところ Windows のファイル共有で使ってるけど、
シンクロ系の操作した後にリポジトリにゴミ(?)が残ってエラーになることがよくあります。
今後その辺を改良ということらしいですが、現状でもちゃんとした鯖で bzr+ssh とかで
運用した方が安定なんですかね。

178:デフォルトの名無しさん
10/05/11 10:34:01
ルートリビジョンを同じくする二つのBazaarブランチを
「rsyncで」双方向に同期するとまずい?
ブランチの中の内部的なファイルってファイル単位で単調増加
じゃないのカナ?

.bzr/branch/last-revision の中身が違うのか。

179:173
10/05/11 22:58:46
>>176
そうなんです。
しかし、bzr statusは、前のリビジョンとの差分とローカル修正された差分の両方が表示されてしまいますね。。

カレントのリビジョンで、ローカルで変更されたファイルのみの一覧表示って、どうやるのでしょうか。


180:デフォルトの名無しさん
10/05/12 01:40:55
コミットログとpullの動作で質問

共有リポジトリにtrunkブランチをinitして、
そのtrunkを異なる3つのフォルダに落とす。

dir:work_T => trunkログ確認用。
dir:work_A => あるファイルを変更
dir:work_B => work_Aで触っていない別のファイルを変更
として、AとBをpushしたら、work_Aのコミットログが消えました。
すぐ試せるコマンド書くんで、自分がおかしいのかbazaarがおかしいのか(仕様)なのか
教えてください。
(改行多いので次のカキコ)

181:デフォルトの名無しさん
10/05/12 01:45:18
mkdir sb
cd sb
bzr init-repo --no-trees PROJECT
bzr init PROJECT/trunk
bzr branch PROJECT/trunk work_T
bzr branch PROJECT/trunk work_A
bzr branch PROJECT/trunk work_B
cd work_T
echo "A" > txt_A.txt
echo "B" > txt_B.txt
bzr add
bzr commit -m "init."
bzr push ../PROJECT/trunk
cd ../work_A
bzr pull
cd ../work_B
bzr pull
cd ../work_A
echo "AA" > txt_A.txt
bzr commit -m "this is work_A rev2 commit"
bzr push ../PROJECT/trunk


182:デフォルトの名無しさん
10/05/12 01:47:24

cd ../work_T
bzr pull
echo "ここでthis is work_Aのログはあるが、work_Bを取り込んだ後だと無い"
bzr log

cd ../work_B
echo "BB" > txt_B.txt
bzr commit -m "this is work_B rev2 commit"
bzr push ../PROJECT/trunk
bzr merge --pull
bzr commit -m "this is work_B rev2 diverged-branches => merge --pull => push"
bzr push ../PROJECT/trunk
cd ../work_T
bzr pull
echo "ここでthis is work_Aのログが無い"
bzr log
type txt_A.txt
type txt_B.txt


183:デフォルトの名無しさん
10/05/12 07:59:21
>>180
仕様だよ。

merge --pullを実行してるけど、これは、「pullできる時はpullして、できない時はmergeするよ」、という意味。
今回はpullはできない状況だから、mergeが実行されている。

mergeした後にcommitすると、途中で枝分かれして再統合された形のログになる。
今回の場合ならこんな感じのログになっているはず。this is work_Aのリビジョンは消えたわけじゃなく、
枝分かれした先に存在している。

3 this is work_B rev2 diverged-branches => merge --pull => push
2 this is work_B rev2 commit
 1.1.1 this is work_A rev2 commit
1 init.

bzr logだと、履歴のメインラインしか表示しないので、this is work_Aのリビジョンは表示されない。
かわりに、bzr log -n 0とオプションをつけるか、bzr qlogを使えばいい。

ちなみに、pullとmergeについては、Mercurialの場合とコマンドの位置づけが違うので、Mercurialを
知ってるとかえって混乱するらしい。オレはMercurialは使ってないから詳しくは分からないけど。



184:180
10/05/13 00:12:32
>>183
ありがと!一つだけわからないことが。
>今回はpullはできない状況だから、mergeが実行されている。
これは、直前にpushして送ろうとしたらエラーになったから、
pullをしたんだけど、

work_Aではtxt_Aを編集 work_Bではtxt_Bを編集したんだから、
互いの修正ファイルがかぶってないからpush出来てよさそうなんだけど、
だめなの?

185:デフォルトの名無しさん
10/05/13 23:51:35
>>184
だめ。
修正ファイルがかぶってるかどうかは関係なくて、履歴が分岐してしまった時点でpullはできなくなる。
(手元のブランチにしかないリビジョンがある場合はpullできない)

rebaseコマンドを使えば、枝分かれした履歴を無理やり分岐の無い形にまとめることもできるけど、
特に理由が無ければ素直にmergeを使えばいいと思うよ。

ブランチXの履歴が A→B→C、ブランチYの履歴がA→B→D→E だとして、Yの変更をXに取り込みたい
場合、普通はmergeを使ってこういう履歴にするんだけど、
     C -- F
    /    /
A-B-D-E

rebaseを使ってこういう履歴を作ることもできますよ、ってこと。
A-B-D-E-C


186:180
10/05/17 01:09:01
>>185
なるほどよくわかりました、ありがとう!
mregeを使った方が理解しやすいですね。

187:デフォルトの名無しさん
10/05/17 19:30:02
BazaarにはSubversionにあるexternal相当の機能は
ありませんよね?みなさんはどのように関連する
ライブラリなどのブランチを集めているのでしょうか?

メインのプロジェクトの下に、他のブランチを
chekoutしてくるスクリプトを置いておいて
一発で集められるようにしている、とかですか?

188:デフォルトの名無しさん
10/05/19 23:14:01
cvsだと、cvs stat -v hoge.c でTAG付けが分かったけ、bazaarはないのか?

189:デフォルトの名無しさん
10/05/20 23:36:50
bzr ignoreの動作でハマりました。

複数階層からなるフォルダを管理しており、特定フォルダ以下のファイルを無視したくて、
bzr ignore directory/subdirectory/foo

のようにやったら

一見何も問題なく無視できたように見えるのに、
bzr statusするとunknownなファイルとして表示されてしまう。。。

解決できないので結局ひとつひとつファイルを追加することにした。。。
ていうか、ファイル名かぶって無視したいファイルと無視したくないファイルが
できたら対応できない気がしてきました。

190:デフォルトの名無しさん
10/05/21 07:23:58
>>189
fooを無視したいんじゃなくてfooの配下を無視したいんなら、
bzr ignore "directory/subdirectory/foo/*"
じゃない?

でも無視されるはずのファイルが無視されないことは確かにあるから、
何かバグがあるんだろうな。

191:デフォルトの名無しさん
10/05/21 08:27:27
BazaarのFUSEモジュールってないんでしょうか?
探し方が悪いのか、見つけられませんでした。

192:デフォルトの名無しさん
10/05/21 21:09:41
何か、ここ偏った人ばっかだね。
やはりUbuntuを作った会社がサポートしてるだけある。

193:デフォルトの名無しさん
10/05/21 23:01:35
>>190

ダブルクォーテーションで囲むのをやっていなかったので試してみたのですが、ダメでした。
解決方法が見つかれば報告します。。。


194:デフォルトの名無しさん
10/05/21 23:08:07
>>193
書き込んだ直後に解決?しました。

【原因】
無視したいファイルの相対パス指定を、
.bzrのあるフォルダではなくその一つ下のパスからみた設定にしていたから。

【解決方法】
bzr ignore "directory/subdirectory/foo/*"ではなく、
bzr ignore "repo_root/directory/subdirectory/foo/*"にする。

【わからなかった原因】
これまでignoreの設定は拡張子指定のワイルドカードか、ファイル名完全一致だったので、
ignoreの設定が.bzrignoreファイルからの相対指定になる事を知らなかったため。

お騒がせしました。
他にこんな凡ミスで躓く人がでない事を祈り、記録として書き込んでおきます。



195:デフォルトの名無しさん
10/05/30 19:55:02
2.1.2が出てるね。windowsのインストーラはまだだけど>>28が直ってるみたい。

196:デフォルトの名無しさん
10/06/03 11:37:48
ブランチの中にブランチを入れてると、
内側のブランチに付いてはTortoiseBzrの
アイコンオーバーレイの対象から除外されるんだね。
joinはせずにSubversionのexternalsみたいなことを
したいんだけど、nested branch はまだ先みたいだね。

197:デフォルトの名無しさん
10/06/03 11:45:59
nested trees だった orz
URLリンク(bazaar.launchpad.net)

198:デフォルトの名無しさん
10/06/04 22:35:02
それ以前に作業ツリーのないブランチもオーバーレイされなかった気がする。
standalone treeやfeature branchでやっている場合は気にならないんだろうけど

199:デフォルトの名無しさん
10/06/05 00:34:18
Linuxではgit使ってたんだけど、Windows版はいまいちなのでBazaarにしてみた。
リポジトリ、ブランチ、チェックアウトの関係がなかなかつかめないな・・・。
なんかユーザーガイド読んでても選択肢が多すぎて混乱する。

200:デフォルトの名無しさん
10/06/05 16:44:48
>>199
チェックアウトは主に、集中型のスタイルでやる場合に使うものなので、
分散型で使うならとりあえず使う必要は無いと思う。


201:methane
10/06/05 18:33:49
>>196
はい、その制限は把握していますが、対応が後回しになっています。
nested tree はいつになったら実装されるのかな。scmprojが安定しちゃったけど。

>>199-200
他にも、リモートのブランチのミラーブランチがわりにチェックアウトを使うことがあります。
bzr init-repo proj
cd proj
bzr checkout url_to_trunk upstream
bzr branch upstream afeature
cd afeature
# afeature ブランチを開発
cd ../upstream
bzr merge ../afeature
bzr commit # afeature を trunk にマージ

202:デフォルトの名無しさん
10/06/06 05:50:21
>>199
ブランチに関してはいろいろあって解りづらいよね。
俺もスタックブランチとはなんぞやと
URLリンク(doc.bazaar.canonical.com)
を読んでみたが、さっぱり解らなかったので、さらにググって以下のサイトで納得。
URLリンク(idlysphere.blog66.fc2.com)
要するに bzr branch 以外は、いわゆる「中央」が必要らしい。

公式の文書はとにかくわかりづらい。絵や例を多用しているにもかかわらず。
なんでもっとユーザー視点から書けないのかね。こんなのユーザーガイドじゃなくて
基本仕様書レベルじゃないかと思うんだけど。

203:デフォルトの名無しさん
10/06/06 06:47:25
公式ドキュメントって分かりにくいですよね
hginit.comみたいな分かりやすい解説があればいいんですが

204:デフォルトの名無しさん
10/06/06 07:45:12
この手のソフトにしては丁寧な解説だと感じたけど

205:デフォルトの名無しさん
10/06/06 09:37:50
gitやMercurialだと、デフォルトの操作を使ってれば大体の操作ができるところが、
bazaarだとユーザーが選択しないといけないところが多いって印象が。あまりにも出来ることが多すぎて難しい。
まださっぱり理解してないから勘違いしてるのかもしれないが。

こういうときにはこのコマンド、的な定石が見えてくるとまた印象も変わってくるのかな。

206:デフォルトの名無しさん
10/06/06 11:42:51
bazaarってブランチいくつあるんですか?
gitだとローカルブランチとリモートブランチの2つ、
hgだと名前付きブランチと名無しブランチの2つだと思うんですが。


207:methane
10/06/06 11:45:24
stacked branch は普段は気にしなくてもいいと思う。
Launchpadでは自動的に使われているし、そうでない場合も大きいプロジェクトの
独自ブランチを別の場所で公開するときに本家にスタックすると、独自ブランチのサイズが小さくて済む。

bzr branch URLリンク(some.big.project) mybranch
cd mybranch
# hack hack hack
bzr push --create-prefix bzr+ssh://my.rental.server/~/public_html/bigproj/mybranch --stacked-on URLリンク(some.big.project)

こうすると、my.rental.serverには自分で作ったリビジョンだけが格納されるのでpushが速いし、
サーバーの容量も少なくて済む。


ローカルの作業で利用する方式は、一応次のドキュメントにまとまっている。
URLリンク(doc.bazaar.canonical.com)

208:methane
10/06/06 11:53:24
>>206
その分類だと、作業ツリーは無視してるんですよね?

なら、 shared repository を利用する/しないで2種類
stack している/していない で2種類
これらは直交しているので、2×2 = 4種類

colocated branch はブランチの種類と言えるか微妙なので除外。

209:デフォルトの名無しさん
10/06/06 12:20:01
>>208
> >>206
> その分類だと、作業ツリーは無視してるんですよね?
>
gitのbareかbareでないかってことですか?
hgはそもそもbareないですし。
bzrもbareあるなしがあるんですか?


210:デフォルトの名無しさん
10/06/06 12:31:05
bzrの1.1みたいなリビジョンは、git, hg感覚だとブランチなのですが、
bzrではブランチとは言わないんでしょうか?


211:デフォルトの名無しさん
10/06/06 12:49:00
AとBという二つのブランチがあって、
A に A/B を join したあと、
Aを元のBにマージするとえらいことになるね…

212:デフォルトの名無しさん
10/06/09 07:19:12
>>210
gitやMercurialみたいにリビジョンに名前つけるだけじゃなくて、ブランチっていう実体があるから
むしろSubversionあたりと比較した方がわかりやすいのかもしれない?

213:デフォルトの名無しさん
10/06/09 08:27:02
>>212
なるほどSubversionのブランチですか。
Subversionのブランチは全く使い物にならなかったので全く使いませんでした。
CVSから何も進歩していない上に、
ディレクトリだと言うのがおかしいとしか思えなかったので。
bzrのリビジョン1.1とかはCVSでブランチを切るとできる
リビジョン1.1.2.1を意識しているかと思ったのですが。


214:デフォルトの名無しさん
10/06/09 08:58:19
>>213
あー適当書いたけどSubversionもブランチっていう概念は薄いからだいぶ違うか・・・。
とにかく、gitやMercurialとはかなり用語の使い方が違うと思うんだけど
ブランチとチェックアウトの関係とかなかなかピンとこないんだよなぁ。


215:デフォルトの名無しさん
10/06/09 09:12:48
>>214
Mercurialはチェックアウトも無いので、チェックアウト何それ?という感覚。


216:デフォルトの名無しさん
10/06/10 21:19:56
bzr mergeしたときに、分岐してから修正を加えたことのあるファイルに対して
マージが行われたもの一覧は出せない?
機械的なmergeは成功していても意味的なconfrictが発生している可能性があるのを調べたい。
(ファイル単位じゃなくても起こりえるけど)

例:
void func() {
>>>> branch-a
int var1;
====
<<<< branch-b
何か処理
>>>> branch-a
====
int var1;
<<<< branch-b
何か処理
}
みたいなケース。

217:デフォルトの名無しさん
10/06/10 21:22:02
>>214
bzrは、ブランチとクローンが同じものですしね。
自由度は高いですけど、代わりにバージョン管理システムによって
運用方法の「型」みたいなのが提示されなくて判りにくい、という感じでしょうか。

218:methane
10/06/10 23:49:35
>>217
柔軟すぎてクライアントサイドでどう使ったらいいのか判らないという問題については、
この前のUbuntu Developer Summitで話し合われて、これからどうにかしていこうという
意識合わせだけはできています。
ただし、アイデアは出たものの、どの方式を推奨にするかはまだ決定されていません。

219:デフォルトの名無しさん
10/06/12 09:23:59
bzrでブランチを削除するときに親ブランチにマージしていない
変更一覧を確認することは出来ないのでしょうか?

220:デフォルトの名無しさん
10/06/12 09:53:06
>>219
missingコマンドかな?

221:デフォルトの名無しさん
10/06/12 11:45:58
>>220
ありがとうございます!

222:デフォルトの名無しさん
10/06/19 19:14:18
共有リポジトリ内に作った不要なブランチを削除するときはどうすれば?
確か実体は上位ディレクトリの共有リポジトリにあるんですよね。
単純に削除してしまうと共有リポジトリ内に残骸が残ったままになりませんか。
reconfigure --standalone してから削除?

223:デフォルトの名無しさん
10/06/20 00:34:11
デフォルトでignoreに*~が入ってるけど
これって止めることって出来ない?

224:デフォルトの名無しさん
10/06/20 03:12:14
>>223
Documents and Settings とかの Users とかの下にignore というファイルがある。

225:デフォルトの名無しさん
10/06/20 22:48:06
>>224
thx

226:デフォルトの名無しさん
10/06/21 18:34:20
bzr nick でつけた名前って動やって削除するの?

If unset, the tree root directory name is used as the nickname.
To print the current nickname, execute with no argument.

らしいのだが、その unset とやらのやり方が分からん。

227:デフォルトの名無しさん
10/06/23 20:19:32
本番環境に上書きするだけで必要ファイルがリリースできるような用途を想定して、
変更したファイルのみを取り出すってのはどうやればいいんだろう……。

と思って考えたら以下のような結論になったんだけど、
これってもっと楽な方法があったりする?
bzr log -r111..222 -v --gnu-changelog | grep "^\t\*" | tr '\t*: ' '' | > workfile
dirname < workfile | sort | uniq | awk "mkdir -p ./out/$0" | sh
sort < workfile | uniq | awk "cp ./$0 ./out/$0" | sh

228:デフォルトの名無しさん
10/06/23 21:16:58
>>226
unset のやり方はわからないが、unset された場合は、
the tree root directory name になるのだから、
bzr nick でそのディレクトリ名にしてやれば、unset と
同等の状態になるのだろうか

229:デフォルトの名無しさん
10/06/23 21:18:25
>>227
本番環境もブランチにしてしまって、push とか pull とか
するのはどうなんだろうか

230:デフォルトの名無しさん
10/06/23 23:39:44
>>229
うん。それが王道だと思う。
あとはbzr sendでマージディレクティブを送るとかも正攻法っすね。

ただ本番環境は別の人が管理してて、ファイルで渡してくれと
言われるので。
私の説得スキルでは彼をbzr派に転向できねぇ!

231:デフォルトの名無しさん
10/06/24 00:53:53
>>227
もしかしたら

bzr status -r111..222 | なんとかかんとか

232:デフォルトの名無しさん
10/06/24 19:41:14
>>231
なるほど。statusでリビジョンを指定するとそのリビジョンと作業コピーとの間で
変更があるファイルが出るわけですね。

233:デフォルトの名無しさん
10/06/24 23:36:13
>>227
× bzr log -r111..222 -v --gnu-changelog | grep "^\t\*" | tr '\t*: ' '' | > workfile
○ bzr log -r111..222 -v --gnu-changelog | grep "^\t\*" | tr '\t*: ' '' > workfile


234:デフォルトの名無しさん
10/06/25 09:23:28
元質問者じゃないんだけど、表示する方法もさることながら、
実際に取り出す方法ってないのかな。
export だとディレクトリ丸ごと出てきてしまうし、cat だとファイルを指定しないといけない。
qlog でとあるリビジョンを選択したときに右下に表示されてるファイルを
取り出せると嬉しいんだけど。

235:デフォルトの名無しさん
10/06/25 09:52:26
プラグイン書けばいいんじゃね?

236:デフォルトの名無しさん
10/06/25 20:30:22
>>234
元質問者だけど、>>227は実際に取り出すコマンドを書いたんだが……。
私が実際作業してんのはwindows環境なので似たような処理を行うwshスクリプト書いて
実現した。長いんで欲しいならこっから取ってくれ。
URLリンク(d.hatena.ne.jp)

237:デフォルトの名無しさん
10/06/25 20:33:49
ところで>>222の質問の答えがないかと bzr help commands とか眺めてたら
bzr pack というそれっぽいのがあったけど、実行すると逆に容量が増える。
なんだこれ?

238:methane
10/06/25 21:08:00
>>237
packだけしたら、古いファイルが .bzr/ の中のどこかに残ってしまったような。
obsolete_files か何かが消せたと思うけど、注意してやってみて。

239:デフォルトの名無しさん
10/06/25 21:25:01
>>238
100Mちょいの共有レポジトリをpackして.bzrの中にあるobsolete_files内ファイルを消してみた。
しっかりテストしたわけじゃないけど、bzr logとかちゃんと見れるので大丈夫っぽい。
ただ、それでもpackする前よりも数メガ増えてた。
大量にブランチ切って消してを繰り返した共有レポジトリだったら、
ちゃんと容量が少なくなってくれるのかなあ?

240:デフォルトの名無しさん
10/06/26 00:53:18
>>237
>>222 質問した者だけど、レスがないからすっかり忘れてた。w
私もコマンド眺めてみたりぐぐったりしてみたけど、今のところなさそうですね。
誰かも言ってたけど、作る説明はあっても消す説明がないものは、現段階では
未実装なんでしょうかね。
いざとなれば、一旦ブランチ全部待避しておいて、共用リポジトリを削除して
再作成した後に全 push とか。ww

241:methane
10/06/26 11:14:03
ブランチ消したら不必要なデータも消える機能が必要な場合は、
Stacked Branch を使えばいいんだけど、、、
そうすると今度はスタック元が消えたときの事を考えるのが面倒なので、
Shared Branch 使ってたまに大掃除、で良いと思う。

大掃除するときには、新規に作ったshared repositoryの中に既存のヤツの
ミラーを作って、サービス止めて、サービス止めるまでに入った差分をさらに
更新した後に、既存のshared repository をどっかに移動して新しいヤツを
持ってくる。こうすると短時間で大掃除できる。

242:デフォルトの名無しさん
10/07/03 00:18:27
TortoiseSVNみたいにOffice文書を比較したくてプラグインを作ってみた。
色々設定すればqbzrの差分ボタンからExcelやWordで比較できます。
作った後にaliasで同じことができるのに気付いたけどキニシナイ!

URLリンク(detroit.ddo.jp)


243:デフォルトの名無しさん
10/07/03 00:56:02
>Windowsで外部コマンドが起動できないバグを修正するプラグイン
おー、素晴らしい。今は、このバグのおかげでdiffソフト2箇所に置いてるので。

ちなみに私はOffice文書を比較には、WinMerge+xdoc2txtプラグイン入れて、
とりあえず全部WinMergeに投げるようにしてる。

244:デフォルトの名無しさん
10/07/04 12:43:52
>>239
少なくとも2.1.0現在のpackはレポジトリの中身を整理するだけで
共有レポジトリから存在しないブランチ分のチェンジセットを削除するみたいな
動きはしないようだな。

245:デフォルトの名無しさん
10/07/24 00:26:42
branchコマンドで--no-treeオプションの逆の働きをするものはないの?
init-repo&--no-treesで作った共有リポジトリでworking tree持ちのbranchを作りたい
checkout&unbindでできるのは知っているんだけどね、
branchコマンド単体でできればと思った

246:デフォルトの名無しさん
10/07/24 13:11:03
bzr reconfigure --with-trees とかは?

247:245
10/07/24 13:34:13
>>246
それはデフォルトを設定するものみたいです
bzr reconfigure --treeでいけました

248:ムヒ
10/07/28 21:47:24
TortoiseBzr2.1.1(WindowsXP)を利用しています。SVNからPullするときに以下のエラーで
SVNからとってこれなくなり困っています。原因&回避策をご存じないでしょうか。
sjis主体のアプリから、utf-8に変更したぐらいからおかしくなってます。


Run command: bzr pull URLリンク(*.*.*.*) --directory D:/BzrFolder --remember
URLリンク(*.*.*.*)<)
bzr: ERROR: exceptions.UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)

Traceback (most recent call last):
File "bzrlib\commands.pyo", line 853, in exception_to_return_code
File "bzrlib\commands.pyo", line 1055, in run_bzr
File "bzrlib\commands.pyo", line 661, in run_argv_aliases
File "bzrlib\commands.pyo", line 665, in run_direct
File "bzrlib\cleanup.pyo", line 122, in run_simple
File "bzrlib\cleanup.pyo", line 156, in _do_with_cleanups
File "C:/Program Files/Bazaar/plugins\qbzr\lib\commands.py", line 788, in run
File "C:/Program Files/Bazaar/plugins\qbzr\lib\subprocess.py", line 786, in run_subprocess_command
File "bzrlib\commands.pyo", line 1055, in run_bzr
・・・



249:デフォルトの名無しさん
10/07/28 22:38:50
>>248
コマンドラインからやったらどうなりますか?

250:ムヒ
10/07/28 23:41:24
ログで出ていた、「Run command」の行をDOSプロンプトから実行してもだめでした。

251:デフォルトの名無しさん
10/07/29 08:09:48
>>250
マイドキュメント下の".bzr.log"というファイルにエラー時の詳細が
出力されているはずなのでコマンドライン版でエラーになったときの
ExceptionとTracebackを貼ってもらえませんか?

252:デフォルトの名無しさん
10/08/01 13:36:38
Tortoise BazaarのBuiltin Diff
について質問です。

差分表示に使用されているフォントを
設定ファイルとかで変更出来ないんでしょうか?
タブ幅、フォント指定を変えたいです。
(Builtin Diffは複数ファイルの差分を一気に見れるので
なにげに便利です)

qbzrのソース弄れと言われるかもですが
pythonとビルド方法がわからんとです。

253:methane
10/08/01 16:16:48
>>252
現在のところ、利用するフォントはコードに埋め込まれていて、設定できません。

TortoiseBZRから起動するウィンドウのほとんどはqbzrのもので、qbzrは単体でプラグインとして
インストール可能です。
Bazaarインストールディレクトリ配下のplugins/qbzr を直接弄るか、Application Data/bazaar/2.0/plugins
配下で bzr get lp:qbzr して最新版をインストールしてから弄ることができます。
後者の場合、日本語表示に必要なメッセージオブジェクトファイルをビルドするのに多少知識が要るので、
前者をおすすめします。

で、フォントを弄るには、たとえばサイドバイサイドの画面であれば qbzr/lib/diffview.py のなかの
class SidebySideDiffView の def __init__ のなかで、 self.monospacedFont = QtGui.QFont(...) と
なっているところを見つけて、フォント名を自分の好きなものに書き換えることができます。

タブ幅は、ピクセル単位でなら、同じ関数内の
&   nbsp;browser.setDocument(doc)
の下の行に
    browser.setIndentWidth(48)
を追加すれば設定できました。将来のバージョンで設定可能になるときは、フォントのスペース文字幅から
ピクセル幅を計算するようにして、文字数単位で設定できるようになると思います。

254:デフォルトの名無しさん
10/08/01 16:28:26
C:\Program Files\Bazaar\plugins\qbzr\lib\diffview.py に2箇所
"Courier New, Courier"を設定してるので、フォント名とサイズは埋め込みみたい。
ここを変更した後にBuiltin Diffを実行すれば反映されるので
libをブランチにして、いつでも戻せるようにしてからやってみればどう?

255:デフォルトの名無しさん
10/08/01 21:44:24
>>253-254
詳しい説明ありがとうございます。
pyファイルにそれらしい記述があったのはわかっていたのですが
pyoファイルを作るためになにか必要なのかとおもって手が出せてませんでした。

おかげさまで
pyファイルを弄くり、弄くりしてフォントを変更することができました。

>>253
setIndentWidthだとエラーとなりました。
替りにsetTabStopWidthを見つけて追加したら動きました。

フォント変更だけでなくTabサイズも変更出来ることを
教えていただきありがとうございました。

256:methane
10/08/03 14:17:26
>>255
コピペミスでした。setTabStopWidth()が正解です。

bzr2.2b4 を試してみたところ、TortoiseBZRが動いていませんでした。
bzrの初期化の部分に変更があったのが原因で、すでに開発ブランチでは修正済みです。
TortoiseBZRユーザーは、まだ2.2へのupgradeは控えてください。

257:デフォルトの名無しさん
10/08/07 09:30:50
2.2.0リリース
Windows版Installerはまだ

258:methane
10/08/07 10:02:27
rc無しでいきなりリリースするってことを直前に知ってあわててTortoiseBZRのバージョン
上げたから、翻訳のupdateを忘れてたぜ。

259:デフォルトの名無しさん
10/08/07 10:05:26
>>258 ドンマイ

260:methane
10/08/11 03:33:07
2.2インストーラ来た。
PythonとQtのバージョン上がってるから、全体的にきびきびなってるな。
特にTortoiseBZRからBazaar Explorer起動するときの速度は感動もの。
bzrw.exe もちゃんと動いてる。

261:デフォルトの名無しさん
10/08/11 08:01:47
coloが標準でインスコされるようになったのか
コマンドが多くて大変なのでbzr-bash-completionを入れてみた

262:デフォルトの名無しさん
10/08/12 11:41:30
Bazaar Explorer で、何かにつけて
Unable to load plugin u'rebase'. It requested API version (2, 1, 0) of module <module 'bzrlib' from 'C:\Program Files\Bazaar\lib\library.zip\bzrlib\__init__.pyo'> but the minimum exported version is (2, 2, 0), and the maximum is (2, 2, 0)
とか言われるけど、プラグインなんか知らんがな。上書きしない方がよかったのかな。

263:デフォルトの名無しさん
10/08/12 11:53:57
>>262
うちもそうなった。
で、一回アンインストールして、
再インストールしたら出なくなったよ。

264:デフォルトの名無しさん
10/08/12 13:14:33
やっぱりそうなんかねえ。
作業が一段落したらアンインストろールしてみる。

265:デフォルトの名無しさん
10/08/12 14:42:24
おまいら相談です。
どざのトーシローにリビジョン管理をさせないといけないのですが、
subversion派をなんとしてでも抑えてbazaarを使わせたいのです。
bazaarを推薦する理由を考えやがってくださいませ。

266:デフォルトの名無しさん
10/08/12 14:59:09
ぉーそうなのか。ツッコミありがと。
あとで試してみます。

267:デフォルトの名無しさん
10/08/12 15:05:25
>>265
なぜあなたはbazaarを使いたいのですか?

268:デフォルトの名無しさん
10/08/12 15:30:39
否定する理由はいくつかあるよなあ。
svn:externalsが便利すぎるとかsvn:externalsが便利すぎるとかsvn:externalsが便利すぎるとか。
分散もsvkを使えば(svkは開発停止になってるので将来的にはともかく今は)問題ないし。

269:デフォルトの名無しさん
10/08/12 15:37:49
>>265
bzr-svnを使うという選択肢は無いのですか?

270:デフォルトの名無しさん
10/08/12 17:38:55
>>265
素直にsubversionにしとけ

271:265
10/08/12 18:42:23
>>270
何でやねんw

>>269
中央がSvnだと、ちゃんとバックアップしたり復旧したりってノウハウを学ばせないといけないのよ。
それがイヤだからbazaarにしたいのよね。

>>268
svn:externalsなんて器用なもの使える人間なら勝手にやらせるから苦労しない。

>>267
概ね、上記の通り。つーか、そもそも管理者と開発者が部署が違う上に
外注の可能性もあるから分散型でないと無理だと思う。

いずれにしても、Subversion派自身がリビジョン管理の経験に乏しいんだから
素直に私の意見を聞き入れりゃいいだけの話なんだけどねっと。

つーことで、ありがとおまいら。取り敢えず資料はでっち上げたからこの相談はここまで。

272:デフォルトの名無しさん
10/08/12 23:22:04
>>271
その資料をくれ。


273:265
10/08/13 09:33:45
>>272
そのまま流すわけにはいかないので、気が向いたら書き直してみる。
期待しないで待っててくれ。

274:デフォルトの名無しさん
10/08/13 10:30:33
いずれにせよ「おまいらバカだから頭いい俺がオススメするツール使え」って
態度じゃあ説得はできんと思う

275:デフォルトの名無しさん
10/08/13 10:48:16
BTS、テスト・ビルドツールの連携や外注先のスキル、書籍などの情報、
Git、Mercurial派のことも考えるとマスタはSVNの方が無難だと思うけどな。

276:デフォルトの名無しさん
10/08/13 23:37:46
2chの書き込みだしさすがに >>274 が現実だとは思わないが、
この手のサポートツールは根回し、手回しが各所に必要だよね・・・

周辺の仲間だけでまずは使ってみたりして、賛同者や便利だと言ってくれるなんかを増やしつつ、
上司にも何かにつけて地道に摺り込んでいく

277:デフォルトの名無しさん
10/08/14 13:55:19
SVNのバックアップなんてコマンド1発だし、本当にそれが覚束ないレベルなら分散型での運用なんて無理だろう。
そもそも分散型ならバックアップとか考えなくていいって訳でもないし。

GUIクライアントの出来もだいぶ良くなって来てるとはいえまだTortoiseSVNには遠く及ばないし、VisualStudio使うならなおさらだし。

とりあえず中央はSVNにしておいて、器用そうな奴にはbzr-svnを使わせて少しずつ広めるっていうのが現実的なラインかと思うけど。


278:デフォルトの名無しさん
10/08/14 20:20:29
2.2 をインストールしたら、 Bazaar Explorer のコミット画面で日本語入力ができなくなってしまった。
うちだけかな?
対策ご存知でしたら、教えていただけるとありがたいです。

279:デフォルトの名無しさん
10/08/14 20:29:37
>>278 OS書かないとわからないよ

280:デフォルトの名無しさん
10/08/14 22:19:29
>>279
おっとっと、ごめんちゃい。
Windows Vista Biz x64(UAC有)、 Bazaar と Explorer はスタンドアロン版の 2.2 です。
IME は無償配布のIME2010。
「コミット」ボタンを押してIMEに切り替えようとしても切り替わらず、英数しか入力できないのですが、
いったん他のウィンドウに切り替えて、再度コミット画面に切り替えるとIMEを有効にすることができるようになりました。

281:デフォルトの名無しさん
10/08/15 02:30:10
bzrコマンドに、ルートIDを表示したり変更したりする
サブコマンドってあります?
なければ場当たり的にPythonスクリプトを書いて
やり過ごします。

282:デフォルトの名無しさん
10/08/15 12:09:12
日本語フォルダ名で使えない文字ってありましたっけ?
以下のようなエラーメッセージが出ます…bzr2.2, Win7 32bit buisiness です。
一個上のフォルダへ移動してcommitするとそれは可能である模様。。
環境の問題でしょうか。

C:\Users\xxxxx\Documents\repository\bzr\others\misc\浜キャン>bzr commit
Committing to: C:/Users/xxxxx/Documents/repository/bzr/others/misc/
modified 浜キャン/yyyyyy.docx
aborting commit write group: InvalidURL(Invalid url supplied to transport: "/Users/xxxx/Documents/repository/bzr/others/misc/%95l
%83L%83%83%83%93/": Unable to encode the URL as utf-8: 'utf8' codec can't decode byte 0x95 in position 50: unexpected code byte)
bzr: ERROR: Invalid url supplied to transport: "/Users/xxxx/Documents/repository/bzr/others/misc/%95l%83L%83%83%83%93/": Unable t
o encode the URL as utf-8: 'utf8' codec can't decode byte 0x95 in position 50: unexpected code byte

283:デフォルトの名無しさん
10/08/15 13:36:35
>>282
こちらでも再現しました(bzr 2.2.0スタンドアローンインストーラ版)↓前半は省略
File "bzrlib\msgeditor.pyo", line 146, in edit_commit_message_encoded
File "bzrlib\transport\__init__.pyo", line 1616, in get_transport
File "bzrlib\transport\__init__.pyo", line 1625, in _try_transport_factories
File "bzrlib\transport\local.pyo", line 76, in __init__
File "bzrlib\urlutils.pyo", line 233, in _win32_local_path_from_url
File "bzrlib\urlutils.pyo", line 578, in unescape
InvalidURL: Invalid url supplied to transport: "/xxxxxxx/hama/%95l/":
Unable to encode the URL as utf-8: 'utf8' codec can't decode byte 0x95 in position 14: unexpected code byte
edit_commit_message_encoded内でcommitログを書き込むためのテンポラリファイルをカレントディレクトリに
作成する際、tempfile.mkstempを使ってファイル名を作っているんだけど、内部でos.path.abspathの引数を
unicodeにせずに呼んでいるのが原因かな?

284:デフォルトの名無しさん
10/08/16 02:00:36
bzr --reference が使えるようになるのは
どのバージョンから?ってか予定は未定?

285:methane
10/08/16 14:55:42
>>284
bzr join --reference のこと?
ちょうどさっき、bzr2.3の目玉機能をNested Treeにしようと Martin Pool という
中心人物がMLで話しているところなので、半年後には使えるかも。

>>282-283
Launchpadでバグレポートするのが面倒でしたら、こちらで時間のあるときにレポート
(と、できれば修正)しておきます。

286:282
10/08/18 15:47:35
>>283
ありがとうございます。
とりあえずコミット時のカレントディレクトリ名に日本語を含まない
というルールでいこうかとおもいます。

>>285
いつもありがとうございます。
私としてはお願いできると助かります。

287:デフォルトの名無しさん
10/08/18 15:52:26
>>285
> bzr join --reference のこと?

それそれ、それの事
いまだにsvn:externals の事が忘れられない。

288:デフォルトの名無しさん
10/08/18 16:27:02
URLリンク(osdir.com) か。期待。

便乗するけど、分散型で、svn:externalsでできた相対パス取り込みを実現できるものって無いよね……
もっともそういう構成自体、ひとつのリポジトリに複数ライブラリ/プロジェクトをぶちこんで
それぞれをpartial checkoutできること前提だから、今の分散型のモデルには合わないけどさ……。

289:デフォルトの名無しさん
10/08/18 16:42:34
>>288
Ruby on Rails の git が svn:externals みたいなことをしていた気がする。

290:methane
10/08/18 17:17:57
自分では使ってないのですが、 bzr の scmproj というプラグインを使えば、
ルートプロジェクトがbzrでサブディレクトリはsvnなどという混合環境ができるはずです。

291:デフォルトの名無しさん
10/08/18 17:19:40
>>289
見てきた。gitはこんなことができるんだな。欲しいのとはちょっと違うけど、凄いと思う
URLリンク(progit.org)

292:デフォルトの名無しさん
10/08/18 17:22:53
>>291
hgも似たようなのでsubrepoってのがあるよ。

293:デフォルトの名無しさん
10/08/18 17:31:52
>>292
知ってるって。hgのsubrepoはgitのsubmoduleに当たると思う。
これらは、外部リポジトリを一緒にチェックアウトしてくるという機能で、
svn:externals(の外部URL絶対パス指定)に相当すると思う。

サブツリーマージはちょっと違ってて、外部リポジトリをベンダーブランチとして丸ごと取り込んで
それを違うブランチのサブディレクトリに配置して本家の変更を追っかけていける機能……に読める。
subversionで言うベンダーブランチ+マージトラッキングの賢い版というか。

294:methane
10/08/18 21:04:37
>>293
bzr join がそのサブツリーマージになるのかな?
joinもとの変更も追いかけてマージできるし。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch