【bzr】Bazaarでバージョン管理 Rev 2at TECH
【bzr】Bazaarでバージョン管理 Rev 2 - 暇つぶし2ch152: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もとの変更も追いかけてマージできるし。

295:デフォルトの名無しさん
10/08/18 22:17:03
>>294
join後もpullできたっけ?今のjoinは確か取り込み+リネームだから
取り込み元の位置から移動してしまってるような気がしたけど……。
できるなら、bzr joinが近い機能になると思う。

join --referenceが、partial checkoutも提供してくれそうな気がして少し期待してる。
hgのsubrepoでもできるはずと思うんだけど、bitbacketではそのためにわざわざリポジトリを分けてる
プロジェクトがいくつかあるので、できないんだろう……。

そして結局、svn:externals(相対パス)はどれもできない。

296:methane
10/08/19 03:25:36
>>295
join後はpullじゃなくてmergeじゃないとダメだと思う。

pullコマンドは、手元のブランチを相手側ブランチのミラーにすることだから、
joinなんかで手元で変更した場合は、相手の変更を手元のブランチにマージすることになる。

297:デフォルトの名無しさん
10/08/21 08:35:31
Microsoft Office文書ってZIPばらした状態でも
扱えるといいと思うんだけどなぁ。
バージョニングもし易いと思うし。
かといっていちいち自分でZIP展開したり圧縮したり
拡張子を付け替えたりするのは面倒だ。
って、Bazaarと関係ないけど、最近ブランチに
Officeファイルを突っ込んでみて感じたこと。

298:デフォルトの名無しさん
10/08/21 20:50:11
>>297
ODFだけど同意。

299:デフォルトの名無しさん
10/08/22 13:48:13
ぞうか、zip をサブディレクトリ扱いして
中のファイルをバージョン管理できるようになれば…

300:デフォルトの名無しさん
10/08/26 10:16:40
ファイル名に日本語が使えるのはやっぱいいね

301:デフォルトの名無しさん
10/08/29 07:37:58
スタンドアロン版じゃないとTortoiseBzrとかは
入ってないのかな?Windowsで使ってます。

初めてPython 2.6版を入れてみたんだけど、
bzr.exe も入っていないってことは、
これはPythonインタープリタの引数として
起動して使う or Bazaarライブラリ使った
Pythonアプリケーションの開発用ということ?

302:デフォルトの名無しさん
10/08/29 11:53:41
TortoiseBzrなどのGUIも使いたくて、
かつBazaarのライブラリを利用した
自作ツールも開発したいときには
スタンドアロン版とPython版(?)の
両方をインストールする必要がありますか?

303:デフォルトの名無しさん
10/08/29 12:07:49
つまりスタンドアロン版だけインストールしてもらって、
さらに import bzrlib するようなちょっとした
ツールも使ってもらうには両方をインストールしてもらう
必要があるのかどうかと言うことです。
ワークフローの自動化のために使ってもらいたい
コマンドラインツールがいくつかありまして。

304:methane
10/08/29 14:59:01
Python版はbzr本体しか入ってないので、スタンドアローン版と同じ環境を作るには
他にも沢山インストールしないといけません。
特にTortoiseBZRは、シェル拡張まで含むので、スタンドアローン版以外でのインストールは
ほとんど開発者専用です。
ちょっとしたツール、の方をbzrのプラグインの形にできれば、スタンドアローン版で
そのツールを動かすことができます。

305:デフォルトの名無しさん
10/08/29 21:54:01
>>304
そのことはページのメンテナに言って書いておいたほうがいいと思うw

俺もPython環境すでにあったからPython版ダウンロードして、
全然足りないんじゃないのかと思ったから


306:methane
10/08/30 07:45:05
>>305
URLリンク(wiki.bazaar.canonical.com)
には一応書いてあるから、URL紹介するときにはLaunchpadのURLを直接出すより
こっちのページを出す方が良いんだろうけど、このページは更新が遅いという、、、

307:デフォルトの名無しさん
10/09/01 17:09:34
bzr qaddのGUIからignoreすることはできますか?

308:デフォルトの名無しさん
10/09/01 17:35:47
.bzr/repository/obsolete_packs/ 以下の
いろんなファイルはブランチの一部なんだよね?
なんか増殖していく。コミットしているんだから当たり前か。
.bzr 以下は触らないようにしているけど。

309:デフォルトの名無しさん
10/09/01 17:44:10
URLリンク(bugs.launchpad.net)
Martin Pool on 2009-10-06
summary: - bzr pack doubles repository size
+ bzr pack leaves files in obsolete_packs, therefore doubles repository
+ size

これはこのまま・・・?

310:デフォルトの名無しさん
10/09/01 21:56:54
Bazaarってメモリ食いなのがなぁ。
大量のファイルをコミットしようとしたり、
巨大なリポジトリを操作しようとすると、

aborting commit write group: MemoryError()
bzr: out of memory

Windows XP 32bit版でメモリが2GBポッチだから?


311:デフォルトの名無しさん
10/09/01 23:10:32
>>308
packsやindicesに積み替えたときの残骸だから、折を見て削除しちゃっても大丈夫。
つーか、uncommitかpackしないとできなくない?

312:デフォルトの名無しさん
10/09/02 20:33:35
>>310
普通こんなことやるべきじゃないが、例えば400MBのファイルを
コミットすると必ず out of memory になる。
Windows 7 32bit 版で 3GB メモリ積んでる。
Pythonインタープリタの制限?
64ビット版ならどうなんだろう。

313:methane
10/09/02 23:04:30
bzrは現在のところ、単一で容量の大きいファイルの扱いは苦手です。
実ファイルサイズの3倍程度のメモリを消費します。
64bit版ならさすがに大丈夫でしょうが。

Pythonインタープリタの制限というより、実装・設計上の問題なので、
将来的には改善されると思います。

314:デフォルトの名無しさん
10/09/02 23:11:25
3倍って凄いな

315:デフォルトの名無しさん
10/09/03 04:50:27
Bazaarのブランチって、bzr checkでチェックしているのは
メタデータ部分だけ?それとも各ファイル各リビジョンの
ハッシュ値とか記録されていて、内容の破損についても
チェックしてくれているの?

316:デフォルトの名無しさん
10/09/03 07:51:25
Subversionあたりだと、割と平気で数十M単位のファイルコミットしてたりするからなー。
数百Mでこけられるとちょっと怖い。

ホントは運用をもうちょっと考えるべきなんだろうけど。

317:デフォルトの名無しさん
10/09/03 09:01:57
コードと一緒にデザイナーさんから送られてきた
画像とか映像を一緒に突っ込んでしまいたい時がある。

318:デフォルトの名無しさん
10/09/03 19:23:06
誰か64ビット版のWindows使ってる人、
どれくらいでかいファイルまでコミットできるか
試してくれないかなぁ?500MB位のファイル希望。

319:デフォルトの名無しさん
10/09/03 19:37:24
Windows上ではBazaarを動かしているPythonが32bitのままだから
ほとんど意味無いんじゃないか?

320:デフォルトの名無しさん
10/09/04 01:21:40
>>318
500MB程度だったら、64bit OSとか関係ないんじゃないか
Bazaarは確かUbuntuで使われてたよな?パフォーマンスみるならUbuntuのリポジトリ操作してみればいいんじゃないの


321:デフォルトの名無しさん
10/09/04 10:25:08
>>320
Ubuntuのリポジトリはどこですか?

322:デフォルトの名無しさん
10/09/04 11:09:07
なんでUbuntuのリポジトリが出てくるか分からんのだけど

323:デフォルトの名無しさん
10/09/04 12:32:32
それなりにでかいリポジトリの例ってことじゃないの?

324:デフォルトの名無しさん
10/09/04 16:21:03
問題になってたのはリポジトリの大きさじゃなくて、
リポジトリに入れるファイル一つのサイズだったはずだが…

325:デフォルトの名無しさん
10/09/08 21:30:28
From: Richard Stallman <rms@gnu.org>
To: bazaar@lists.canonical.com
Subject: Re: bzr 2.2.0 released!

Congratulations on the new release.

326:デフォルトの名無しさん
10/09/09 08:41:38
>>325
emacs vs. vi ?

327:デフォルトの名無しさん
10/09/09 15:56:10
バージョニングとは関係なく,
commitの度にファイルのタイムスタンプも
記録してくれたらいいのになぁ。

まぁ他のVCSでもやってくれる奴はないんだけど。

328:デフォルトの名無しさん
10/09/10 02:55:52
bzrって履歴にある特定のリビジョンにさっと切り替えられないものなのでしょうか?
他のバージョン管理だと履歴だして、その場で切り替えられたりできたのですが、
中身を見えこそすれども一気にスイッチできなくてムズムズしますw

他のリビジョンへチェックアウトができないというのはこういうことなんでしょうか?
他のディレクトリへブランチすれば(gitやhgだとクローンでしょうか?)いけるみたいですが結構面倒に感じます

329:328
10/09/10 02:57:21
バージョンは、Bazaar Explorer 1.0.1 、Bazaar (bzr) 2.1.1、Tortoise Bazaar 0.5.4です

330:デフォルトの名無しさん
10/09/10 03:28:50
bzr revert -r [リビジョン]

でどう?

331:328
10/09/10 04:34:34
>>330
いけました!

現在のブランチがどこを指しているか、どのバージョンなのかはわからないですがこんなもんでしょうか?
Bazaar explorerには該当機能はついていいないのかな

332:methane
10/09/10 05:30:24
bzr update -r の方が良かったような。revert -r だと bzr status が嫌な感じにならない?

Bazaar Explorer なら「履歴」から、TortoiseBZRなら「ログ」から、 bzr qlog の画面が
見えます。(日本語統一しないとな…)
最新のqlogだとリビジョンを右クリックすると "Update to this revision" というメニュー
項目があり、これを使ってGUIでそのリビジョンにできます。

333:デフォルトの名無しさん
10/09/11 15:15:32
lp: プロトコルって push のときに ssh を使いますよね?
Windows の場合 ssh はどこから調達してくるのでしょうか?

334:デフォルトの名無しさん
10/09/11 15:38:23
"bzr ssh windows"とかでググれ

335:methane
10/09/11 16:22:46
paramiko という、Python製sshクライアントを使います。
ssh.exeがあるとそっちを使いますが、GUIから実行されるときは初めて接続するときのyes/noを
うまくハンドリングできないので、BZR_SSH=paramiko って環境変数にセットすることをお勧めします。

paramikoはputtyというかpageantと連携するので、puttyで鍵を作って、pageantに読みこませておくと
良いです。

336:デフォルトの名無しさん
10/09/11 17:09:13
>>335 レスありがとうございます。

>ssh.exeがあるとそっちを使いますが

それでcygwinがインストールされている環境では
挙動が違ったのかも知れません。
鍵認証がうまくいかず悩んでいました。
cygwin の ssh は Putty の鍵をそのまま使ってくれませんし。

ssh が必要だろうなぁなどと漠然とした思い込みで
cygwin の ssh を入れてみたりしたのがまずかったのかも。
環境変数で明示的にsshクライアントを指定するようにします。

337:328
10/09/11 19:55:45
>>332 ありがとうございます

updateあったんですね。試してみます。

ついGUIがあるとそっち使いがちですが、コマンドラインからも使ってみないと
GUI版にない機能かどうか判断する前に質問してしまった。
いけないな


338:デフォルトの名無しさん
10/09/11 19:56:50
sshの鍵の形式違う載って何であんなにハマる人多いのかね
何故一緒にしなかったのか問い詰めたい
ssh.exeの方じゃなくてputtyのほうね

339:デフォルトの名無しさん
10/09/11 20:03:40
確かに、putty独自形式って何の必要があったのか、ってのは興味があるな
なんか経緯があるんだろうなあって思って素直にputtygenでごにょごにょしてるけど

340:デフォルトの名無しさん
10/09/11 23:43:04
OpenSSHの秘密鍵やホスト鍵のリストを直接
扱うことが出来るPuTTYがあれば便利だな。

341:デフォルトの名無しさん
10/09/11 23:52:02
PuTTYで出来るもん

342:デフォルトの名無しさん
10/09/12 09:50:45
Bazaar Wikiの日本語ドキュメントに関する記載が古いから
更新しようとしたら、IPアドレスがアクセス規制(スパム対策)に引っかかった……
すまんが誰か更新を頼む

343:デフォルトの名無しさん
10/09/12 14:05:51
Poderosaも使ってるとSSHの鍵がさらにもう一つ増えるw

344:デフォルトの名無しさん
10/09/12 23:40:42
>>343
おまえは俺か?

・ssh用のターミナルはPoderosaの鍵
・Tortoiseなんたら用はputty鍵
・cygwinやLinuxで他につなぐときはOpenSSH鍵

3つ必要w


345:デフォルトの名無しさん
10/09/12 23:44:09
Tortoise なんたら用のも ssh.exe でいいんじゃねぇの?

346:デフォルトの名無しさん
10/09/13 02:02:15
Tortoiseはなんとなくplink(TortoisePlink)を使うものだと思ってた
ssh.exeでも行けるんだ?

347:methane
10/09/13 07:57:50
BZR_SSH=sshもBZR_SSH=plink も大丈夫です。
が、ssh.exe が何かしらのユーザーとのインタラクション(初めて接続するホストですが良いですか?
とかとか)を要求したときに(少なくともGUIでは)無言で先に進まなくなってしまいます。

bzr-svnを使う場合は、libsvnがparamikoは使ってくれないので、SVN_SSHをplinkw.exeとかに
設定しないといけません。その時はやはり、コマンドラインからssh接続が成功することを確認
しておかないとなんで接続できないのか判らない状況に陥ったりします。

348:デフォルトの名無しさん
10/09/14 04:38:56
ssh.exeの場合、その前にシェルでsshagentをかましておく必要があるからな。
GUIから使う時は面倒なので、いつもplink+pageantにしてしまうな

349:デフォルトの名無しさん
10/09/14 10:05:44
pageantって毎回秘密鍵を指定しないと空っぽなのがヤダ。
コマンドラインで指定すればいいのか。

350:デフォルトの名無しさん
10/09/15 00:04:05
>>349
起動するときの引数で鍵は指定できる


ただしここに来るようなわかっていると思うが、
パスフレーズの入力がめんどうだからと記憶するのはお勧めできんな

記憶してるFFFTPのパスワードを狙い撃ちにするウィルスもあることだし
pageantはWindowsの開発者はかなり使っているだろうし同じようなことがありうる。

といっても、そんなウィルスにはいる状況ならそもそもやばいが

351:デフォルトの名無しさん
10/09/15 11:41:39
申し訳ないが、日本語でお(ry

352:デフォルトの名無しさん
10/09/16 14:46:49
公開鍵暗号(ry

353:デフォルトの名無しさん
10/09/16 23:08:45
>>351
>>350は馬鹿だから一言で言い換えてやると

パスワードを保存する奴は馬鹿

354:デフォルトの名無しさん
10/09/16 23:44:53
>>353
それをpagentに限ってやる奴も居るって話ではないかな?
それも馬鹿

ついでに、自動化等の理由なしにパスフレーズ無しってのも馬鹿
だからって自動化の為にssh-agentを上げっぱなしってのも、
正しいやり方を知らないと馬鹿、らしい

世の中馬鹿ばっか

355:デフォルトの名無しさん
10/09/17 11:40:45
パスフレーズ無しは、それほどセキュリティに影響しないといった意見もあるようだけど、
実際のところどうなんだろう。
仮に鍵を盗まれたとしても、すぐには使われないだろうけど。

356:デフォルトの名無しさん
10/09/18 11:56:46
WindowsでBazaarと連携できるマージツールは
どのようなものがおすすめでしょうか?
今まではemacsを使っていました。

357:デフォルトの名無しさん
10/09/19 16:05:46
WinMerge を使い始めました。
ただ、まだBazaarとの連携(マージツールとしての活用)
はうまく設定できず。

手動でWinMergeのダイアログボックスにドラッグ&ドロップして
差分をユニファイドdiffで出力するという使い方で
パッチファイルを地道に作るという使い方。

358:methane
10/09/20 12:07:25
WinMergeをマージツールとして使うには、
"WinMergeU %t %b %o /o %r"
と書きます。
URLリンク(bazaar.lab.klab.org) を参照してください。

359:デフォルトの名無しさん
10/09/20 20:29:14
>>358 ありがとうございます。うまく設定できました。

360:methane
10/09/21 17:11:30
qbzr 0.19.1 が出てるけど、TortoiseBZRと相性問題があって現在修整中なので、
TortoiseBZRユーザーは bzr-2.2.1 のパッケージが出るまで待ってね。

361:デフォルトの名無しさん
10/09/22 18:23:16
TortoiseBZRでApacheのBasic認証ってできないのでしょうか。

コマンドラインで
bzr branch svn+http://レポジトリのURL
とした場合、ユーザとパスワードを求められるのですが
TortoiseBZRだと、ユーザとパスワードを入力する画面が表示されないで、
TortoiseBZRがフリーズしたような状態になります。

環境はbzr 2.2.0 (windows install) on Windows7 ultimate x64です。

362:デフォルトの名無しさん
10/09/22 18:24:59
このスレをじっくり読むと役に立つかもしれません。

363:デフォルトの名無しさん
10/09/26 08:26:33
TortoiseBzrでのアイコンオーバーレイの表示に必要な
ブランチの各ファイルの状態って tbzrcache.exe が
メモリ上にずっと保持しているんですよね?
ディスク内のブランチが増えてきたり、
ブランチのサイズが大きくなってきたりすると
どんどんメモリを食いつぶしていくんでしょうか?

それからtbzrcache.exe がファイルシステム内のどこを
クロールしていてどのファイルの情報をキャッシュしているか
って確認できるんでしょうか?tbzrtrace.exe では
tbzrcache.exe の協働までは見せてくれないように思います。


364:デフォルトの名無しさん
10/09/26 08:51:55
--checkout から --lightweight-checkout に reconfigure しても
既にローカルに保存されているリビジョンが削除されて
軽量化されるわけじゃないんだね。

365:デフォルトの名無しさん
10/09/26 10:51:50
スタックブランチを使ってみようとしたんだけど、
スタックブランチへの add も commit も
スタックオンブランチへのアクセスが必要なんだね。
しかも結局コミットに失敗しちゃった。

bzr: ERROR: Cannot commit from a lightweight checkout to a stacked branch.
See URLリンク(bugs.launchpad.net) for details.

スタックブランチという概念自体の理解が間違っているのだろうか?

366:デフォルトの名無しさん
10/09/26 10:59:36
って >>358 が答えてくれる前に
URLリンク(groups.google.co.jp)

昨年の時点でそうだったのか。
今までスタックブランチは使ったことがなかったから知らなかった。
Windows で Bazaar 2.2.0 を使用中。

367:デフォルトの名無しさん
10/09/26 11:09:04
2.2.2dev のドキュメントには

Limitations of stacked branches¶
Currently, you cannot commit to a stacked branch, due to bug 375013.

って書かれてる…コミットもできないブランチなんて意味ないよ…
最初から --stacked でブランチ作らせるなよと思う。

368:デフォルトの名無しさん
10/09/26 11:42:17
TortoiseBZR 入れたらエクスプローラーがしょっちゅう固まるんだけどこんなもの?

369:デフォルトの名無しさん
10/09/26 12:17:50
>>368 固まることがありますね…
右クリックメニューが固まります?
それとも普通に開いただけで固まります?

後者は最近はそんな事なくなってきた気がするんだけどなぁ。
TortoiseSVNと併用してない?

370:デフォルトの名無しさん
10/09/26 12:19:38
tbzrcache は別プロセスだしなぁ。
tbzrtrace で何が起こってるかみられるけど、
TortoiseBZRの開発者じゃないとあんまり意味ないね。


371:デフォルトの名無しさん
10/09/26 13:11:30
うちは十数個のプロジェクトを一つのフォルダに入れていると
アイコンの反映が遅れたりうまくいかないので外した
Bazaar Explorerとコマンドラインからのqbzrで十分

372:デフォルトの名無しさん
10/09/26 13:44:22
でもアイコンオーバーレイは便利なんだよな。

373:デフォルトの名無しさん
10/09/26 14:48:58
開いているプロジェクトだけバージョン管理のアイコンオーバーレイ表示ができるIDEはけっこう便利だよ
エディタでもそういうのあるかもしれない
Bazaar対応かプラグインでてるIDE何かあったかな


374:デフォルトの名無しさん
10/09/26 15:26:31
Eclipse

375:デフォルトの名無しさん
10/09/26 19:42:38
TortoiseBzr のソース見てるんだけど、
そういえば、 bzr.ico が含まれてないなぁ。

376:デフォルトの名無しさん
10/09/26 20:04:28
URLリンク(wiki.bazaar.canonical.com)
からダウンロードせよということでした。

377:デフォルトの名無しさん
10/09/26 20:12:45
パイプであれこれゴニョゴニョやって面白いツール作れそうだな。

378:デフォルトの名無しさん
10/09/27 01:04:40
>>369
ブランチのあるフォルダを開くとしばらく(数十秒くらい)操作不能になりますねー。
一度動き出すとあとはそんなに止まらないのでキャッシュ中なんだと思いますが。
TortoiseSVNは入れてないです。

379:methane
10/09/27 03:16:54
>>378
どのバージョンでしょうか?
かなり前に、ステータス取得前には?マークを表示するようにしてエクスプローラを
止めないことを優先するようにしたのですが、?が出るまでに時間がかかるという
ことでしょうか?

380:デフォルトの名無しさん
10/09/27 06:59:15
>>379
消してしまったので TortoiseBZR のバージョンはわからないのですが、2.2 インストーラー付属のものです。
よく覚えていませんが、?マークはあまり出てこなかった気が…。
また再インストールしてみて報告します。あと OS は Vista x64 Biz。

381:デフォルトの名無しさん
10/09/27 09:39:52
tbzrcache の方しか見てないけど、
シェル拡張の方はパイプからの応答がなくても
固まらないようになってるんだっけ?

382:methane
10/09/27 10:43:45
>>381
パイプからの応答がないと何回かリトライし、数秒でタイムアウトします。
なので、tbzrcacheの起動待ちで数十秒は止まらないハズ。
tbzrcacheが起動しているなら、オーバーレイアイコンの取得が毎回タイムアウトするとかかな。
重いディレクトリを走査中などにtbzrcacheの応答が遅くなってる可能性はあります。

>>380
ファイルが数千個あるような大きいブランチを表示しようとしたとか、中規模のブランチを数十個
並べたディレクトリを表示しようとしたとか、心当たりは無いでしょうか?

383:デフォルトの名無しさん
10/09/28 09:00:41
>>382
>>380 じゃないけどその程度のことはザラにあるなぁ。
オーバーレイは表示されたらラッキーくらいに考えているので、
シェル拡張の側からは余りがんばらないでさっさとタイムアウト
してくれるほうがありがたいです。

384:デフォルトの名無しさん
10/09/28 11:52:14
オーバーレイは、表示されても嘘ばっかり。

385:380
10/09/28 11:59:06
>>382
ブランチは多いもので2000ファィル、あとは10~100ぐらいの小規模な物です。
昨晩2.2.0 をTortoise付きで再インストールしてみたら、
重くはなっても、ほとんど止まらなくなりました。
ただ、使っているうちに少しもたついてきた印象があります。(気のせいかも)
もうしばらく使って、再現するようでしたら、また報告します。
お騒がせしました。


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