バージョン管理システムについて語るスレ3at TECH
バージョン管理システムについて語るスレ3 - 暇つぶし2ch650:デフォルトの名無しさん
09/03/08 09:00:28
TortoiseHg付属hgの日本語ファイル名周りしらべたけど、hg mvが駄目ってのは勘違いだったみたいスマソ。

hg commit(hg ci)で、addした駄目文字ファイル名のファイルがコミットできないみたい。
hg mv が駄目だと思ったのは、mv時にremoveしてaddされるので、その後のcommitがおかしいためみたいです。

検証過程:

>touch 表の噂.txt # touchは空ファイル作ってるだけです。
>touch test.txt # ただしBorland版touchね
>hg st
? test.txt
? 表の噂.txt
>hg ci -A -m "added from command line" # 追加しながらコミット。ここまではよい
adding test.txt
adding 表の噂.txt
>hg st # コミットできてねえ!add相当は一応できてる
A 表の噂.txt
>hg add . # 念のため
>hg ci -m "added from command line retry"
nothing changed # ええ!?無視ですか?
>hg st
A 表の噂.txt # ダメポwww

つーわけで、>>636 を試してみるぜ

651:デフォルトの名無しさん
09/03/08 09:13:43
あれ?もしかして、>>636ってソースからコンパイルがいるのかよ・・・
Bazzarみたいにプラグイン形式じゃないのか orz
面倒クセー

652:デフォルトの名無しさん
09/03/08 13:04:22
TortoiseHg 0.7 かなりよいですねー。

コミットツールがようやく置き換えられて、ファイル名や以前のコミットログの参照は、
駄目文字含め文字化けしなくなった。
diffの表示も中身がSJIS、UTF-8でも問題ない。
(このコミット時の簡易diff表示は他のTortoise系でもほしいくらい)

残念ながら、Rename Fileはリネームのダイアログが文字化けするし、
win32mbcsのエラーで実際にリネームできないし、
ドラッグアンドドロップでのリネームはまだ非対応なものの、
Guess Renamesで適当にリネームした後、リネームの自動検出ができる。
そっちは駄目文字含め、日本語ファイル名OK、なので実質は問題ないだろう。

これで、コマンドライン版 hg なくても日常作業は事足りるようになった。

しかし、hgのコマンドライン版は日本語リソース追加されてて、日本語で出てきてびっくりしたw

653:630
09/03/08 13:46:07
>>652
日本語ファイル名対応は、まだ完全ではないようなので要注意ですよ。

654:デフォルトの名無しさん
09/03/08 14:23:16
>>651
本体の1.2のソースダウンロードしてローカルリポジトリ作って>>636のパッチ当てて
できたhgext/win32mbcs.pyとmecurial/util.pyをTortoiseHg/library.zipの中の同じ位置に配置すればとりあえず動くっぽい

655:652
09/03/08 15:11:02
TortoiseHg 0.7 で 実質、>>619の問題は一応解消した。

>>650 は相変わらず駄目だが、直接ファイル名指定してやると一応通る

>hg ci -m "added from command line retry" 表の噂.txt
>hg st        # OK
>

だけどまあちょっと怖いね。


しかし、bitbucket.rogに日本語ファイル名のファイルをpushしたら、
未だに更新ファイルの詳細ページがInternal Server Errorで見れねえw
これ、大分前から変わってないな

656:デフォルトの名無しさん
09/03/08 21:34:15
TortoiseHg 0.7のコミットツールの
ログ入力欄のフォントが気に入らない。
変更できねえかな。

657:デフォルトの名無しさん
09/03/10 19:06:14
TortoiseHgの翻訳をLaunchpadでするって激しく何か間違っている感が…。

658:デフォルトの名無しさん
09/03/11 20:31:36
git push

git push origin master
の違いがわかりません。だれか教えて。

あと
git checkout -b dev origin/dev
としたあとにpushするのって、
git push
でいいのか
git push origin dev
としなきゃいけないのか、どっちでしょう。

マニュアルのここを読めでもいいので、教えてください。

659:デフォルトの名無しさん
09/03/11 23:50:36
>>658

git push だけの場合は<repository>と<refspec>を省略したことになるので、
.git/configにremoteとmergeが指定されていればそこにpushしようとするよ。

git checkout -b dev origin/dev とした場合は、devにremoteとmergeが指定されてる
はずなので、省略してgit pushだけでもおk。

git pushはExamplesが俺はすごい分かりやすいと思う
URLリンク(www.kernel.org)

660:デフォルトの名無しさん
09/03/12 11:02:25
>>659
うおーなんとわかりやすい説明。
.git/config みたら
[branch "dev"]
  remote = origin
  merge = refs/heads/dev
と書いてありました。なるほど。
どうもありがとうございました。

661:デフォルトの名無しさん
09/03/12 17:54:40
Bazaar and Mercurial SCM services launched
URLリンク(apps.sourceforge.net)
>The SCM platforms supported by SourceForge.net differ in capabilities.  All of our SCM services include rsync backups, web-based browsing, authentication with SourceForge.net accounts, and direct support by SourceForge.net staff.

662:デフォルトの名無しさん
09/03/12 19:42:09
git pull --rebase

git fetch
git rebase origin
には違いはありますか。

663:デフォルトの名無しさん
09/03/12 23:11:56
>>661
Gitには既に対応してる?

664:デフォルトの名無しさん
09/03/12 23:31:40
>>661
なんということだ
Bazaarユーザーの俺はlaunchpadとSourceForge.net、どっちを使えば

665:デフォルトの名無しさん
09/03/13 11:29:09
URLリンク(git.sourceforge.net)
こいつがGit対応を阻んでいるのかw

666:デフォルトの名無しさん
09/03/13 21:19:25
sourceforgeはgitにずいぶん前に対応しなかったっけ?
URLリンク(slashdot.jp)

667:デフォルトの名無しさん
09/03/13 22:20:48
>>666
jpだけって書いてあるじゃんwww

668:デフォルトの名無しさん
09/03/14 01:46:59
Git だけ >>661 より少し前に対応済み。
"Git now available for SF.net hosted projects 2009-02-18"
URLリンク(sourceforge.net)

669:デフォルトの名無しさん
09/03/14 08:34:01
>>665
warota

670:デフォルトの名無しさん
09/03/14 09:13:46
結局git, hg, bzr, cvs, svnが使えるのか>sf.net

671:デフォルトの名無しさん
09/03/16 18:26:48
git branch -r したときに、たとえば
origin/HEAD
origin/master
origin/experiment
origin/development
と出てたとします。
ここで、リモートのリポジトリから origin/development が削除されたとします。
しかし手元で git fetch してから再度 git branch -r すると、origin/development が残ったままになっています。
つまり、この状態では git branch -r が正しい情報を表示してくれない(または git fetch しても
rogin/development が削除されたという情報が反映されない)ということです。
このあと git branch -r -d origin/development を実行すると表示されないようにはなりますが、やっぱり気持ち悪いです。

長くなりましたが、質問をまとめると、リモートブランチの*正確な*一覧をとってくるのはどうしたらいいでしょうか。
または git branch -r したときに、すでにリモートブランチで削除ずみのものを表示させないようにするにはどうしたらいいでしょうか。

よろしくお願いします。

672:デフォルトの名無しさん
09/03/17 23:37:37
>>671
git remote prune はどうかな。

673:デフォルトの名無しさん
09/03/18 15:06:17
>>672
まさにそれでした。
$ git remote prune --dry-run origin
Pruning origin
URL: git@github.com:user1/project1.git
* [would prune] origin/development
$ git remote prune origin
Pruning origin
URL: git@github.com:user1/project1.git
* [pruned] origin/development

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

674:デフォルトの名無しさん
09/03/21 22:06:38
TortoiseHg 0.7.1 (with Mercurial 1.2.1)、インストール前に
旧版をアンインストールしておく必要がなくなったようです。


675:デフォルトの名無しさん
09/03/22 00:50:08
TortoiseHg 0.7.1を試してみてRename Fileの化け文字は
ある程度改善したみたいだ。しかしファイル名に「ソ」が
あるとやはり化ける。あと少しで完璧なのに惜しい。

676:デフォルトの名無しさん
09/03/22 01:14:54
>>675
予とか表は大丈夫なのか?

677:デフォルトの名無しさん
09/03/22 02:21:57
>>675
>>636

678:デフォルトの名無しさん
09/03/23 13:28:13
TortoiseHGのGUIツールキットがなかなかよさげなんですが、あれって何使っているんでしょうか?

679:デフォルトの名無しさん
09/03/23 18:38:33
>>678
gtk

680:デフォルトの名無しさん
09/03/24 00:16:26
TortoiseGitでgithub使えている人いる?

mkdir magemoge
cd magemoge
git init
touch README
ToritoiseGitで追加、コミット
git remote add origin git@github.com:user_name/magemoge.git
ToritoiseGitでpush

以下のエラー
> Permission denied (publickey).
> fatal: The remote end hung up unexpectedly
どうすりゃいのかな?

681:680
09/03/24 00:27:07
ssh周りかな?と重い
TortoiseGitのオプションで、sshにplink.exeを指定し、
Pageantを立ち上げて鍵を追加し、実行したのですが、やはりエラーがでてしまいます。
github側にはすでに、対応する公開鍵をついかしてあります。

> git.exe push "origin" master
> fatal: The remote end hung up unexpectedly

うーん。

682:680
09/03/24 01:13:56
何度もスマン
コマンドラインgitだと大丈夫でした。
`ssh-agent -k`を実行して、git push master original で無事いけました。
TortoiseGitの時はどうすんだろ

683:デフォルトの名無しさん
09/03/24 03:30:39
問題山積みですな

684:デフォルトの名無しさん
09/03/24 10:22:41
TortoiseHg 0.7.2

685:デフォルトの名無しさん
09/03/24 11:14:10
まだ>>636が必要そうだね

686:デフォルトの名無しさん
09/03/24 18:35:35
git push すると次のようなエラーがでます。
このエラーは何を意味していますか。
またどう対処すればいいでしょうか。

$ git push
Counting objects: 159, done.
Delta compression using 2 threads.
Compressing objects: 100% (47/47), done.
Writing objects: 100% (81/81), 10.66 KiB, done.
Total 81 (delta 58), reused 47 (delta 33)
To git@github.com:myname/myproject.git
c62e2a8..cd4f2f0 dev -> dev
! [rejected] master -> master (non-fast forward)
! [rejected] experiment -> experiment (non-fast forward)
error: failed to push some refs to 'git@github.com:myname/myproject.git'

よろしくお願いします。


687:デフォルトの名無しさん
09/03/25 10:33:22
TortoiseGitの右ドラッグ&ドロップで "Git Copy and rename versioned item here"という選択肢が出るのですが、
現バージョンでは実装されていないものの、コマンドライン版gitでは何に値するものなのでしょうか?

他にも、

・Git Move versioned items(s) here → git mv 相当?
・Git Move and rename versioned items here → 同上
・Git Copy versioned item(s) here →これもなんだろ?

などがコンテキストメニューで出ますね。

688:687
09/03/25 10:49:54
assert(?) - git equivalent to “svn copy” for forking files with history?

URLリンク(markpasc.livejournal.com)

ああ、普通にコピーするだけでも一応以下のコマンドで感知はできるのか・・・

git log -C -C --name-status --no-walk

なるほど。TortoiseGitの方はコピーしたかどうか、というのはわからないみたいdせいあt。

689:デフォルトの名無しさん
09/03/27 13:38:42
ためしに、MercurialでXAMPP(1万ファイル300MBくらい)を突っ込んでみたんですが、
XAMPPのアップグレード後で更新ファイル数が多いと
TortoiseHgがハングしてしまうw
Intel Q6600程度のCPUだと返ってきません

コマンドライン版hgだとサクサクですね。
Tortoiseの方はあまり大きなプロジェクトは考えられてないもんですかね?

690:デフォルトの名無しさん
09/03/27 13:39:53
訂正

> TortoiseHgがハングしてしまうw
TortoiseHgでコミット時、ウインドウがハングしてしまうw

コマンドライン版だと、hg commitやhg add .ともに軽いです。

691:デフォルトの名無しさん
09/03/27 13:42:04
>>689
また訂正スマソ

> > TortoiseHgがハングしてしまうw
> TortoiseHgでコミット時、ウインドウがハングしてしまうw

コミット時に立ち上がるウインドウがハングしてしまう

です、なので、TortosieHgだとコミットができません orz
まあ、XAMPPは日本語ファイル名はないみたいなのでコマンドライン版でも問題ないのですが

692:デフォルトの名無しさん
09/03/28 00:01:54
TortosieSVN でも、よくあること。
しばらく経ってやりなおす。

693:デフォルトの名無しさん
09/03/28 17:36:10
俺はログオフしてるわ
次同じことやってだめなら諦めてコマンド打ってる

694:デフォルトの名無しさん
09/04/01 03:59:16
python subversion -> mercurial決定
URLリンク(mail.python.org)

695:デフォルトの名無しさん
09/04/01 04:04:35
>694
ハゲがバザーよりsvnユーザーにとって学習しやすいってのは、
どの辺の話だ?

696:デフォルトの名無しさん
09/04/01 04:35:49
>>695
bazaarのメーリングリストでも同じこと言ってるやつがいるなw
bazaarのメーリングリストでキレながらStephenが説明してるから見て来たら?

697:デフォルトの名無しさん
09/04/01 05:59:45
祭り会場(エイプリルフールネタじゃないよ。)

【ネット】 朝日新聞編集局員(49)、2ちゃんねるで荒らし行為。差別を助長する書き込みも…朝日、「処分します」と謝罪で★30
スレリンク(newsplus板)

698:デフォルトの名無しさん
09/04/01 10:20:00
>>697 通報した

699:デフォルトの名無しさん
09/04/01 18:34:07
>>695
Guidoが勝手に言ってるんだから本人に聞けば?

700:デフォルトの名無しさん
09/04/01 20:25:21
TortoiseHg 0.7.3

701:デフォルトの名無しさん
09/04/02 08:11:07
駄目文字ファイル名には対応したが、駄目文字フォルダ名には対応できてない気がする

702:デフォルトの名無しさん
09/04/02 17:16:18
>>701
Mercurial自体が対応してないのに?

703:デフォルトの名無しさん
09/04/02 23:16:39
バージョン管理システムのバージョンを管理するのが面倒くさい。
バージョン管理システムのバージョンを管理するシステムは無いの?

704:デフォルトの名無しさん
09/04/03 00:54:05
パッケージ管理システムでも使えよ

705:デフォルトの名無しさん
09/04/03 15:05:50
質問があるのですが、よろしいでしょうか?

バージョン管理システムで「この行のローカル変更を無視する」ような指定の
できるものはありませんか?

例えば、設定ファイルなど、個々のユーザや環境ごとに内容を書き換える必要
のあるファイルをバージョン管理しようとすると、個々のローカルの変更が当
然、競合してしまいます。

しかし、このファイルをバージョン管理から外すと、新しい設定項目が増えた
ときにも、全ユーザの設定ファイルをアップデートすることができません。

そこで、たとえば
String db_name = "db_(ユーザ名)"; // svn:ignore
という具合に、svn:ignore の出現する行はバージョン管理の対象から外す、と
いった機能がほしいのです。

レポジトリには svn:ignore を含まないコードを登録し、各ユーザがチェック
アウト後に自分に適した値に書き換えてから、自分で svn:ignore と書き加え
ます。その後はその行だけ、バージョン管理システムから無視されるようにな
るので、アップデートすればその行以外は更新されます。

また、svn:ignore の書かれていない行を変更してコミットすれば、レポジトリ
に登録されたコードは当然、変更されます。

こんな機能を持つバージョン管理システムはないでしょうか?

--
もしかして分散バージョン管理システムなら、こういう使い方もできるのでしょ
うか?


706:デフォルトの名無しさん
09/04/03 15:13:01
>>705
設定ファイル側で個々のユーザ毎の設定だけ別ファイル作るとかして対応したら?

707:705
09/04/03 15:26:19
>>706
それはある程度やっておりますが、そういう個人ごとのファイルを中途半端に
バージョン管理したいのです。設定項目が増えたりしますから。

今は、設定項目が増えたりするときは、メーリングリストで通知しています。
もっとうまい方法がないかと思うのです。


708:デフォルトの名無しさん
09/04/03 16:44:32
コミットのトリガーで動く前処理スクリプトか、
svnの代わりに呼ぶラッパー作れば?

709:705
09/04/03 17:27:21
>>708
それはいいかもしれませんね。
ただ、コミットのトリガーだと、ユーザ環境では「変更されたファイル」とし
て扱われてしまうし、
svnの代わりのラッパーは、ユーザのOSやクライアントソフトの種類が多くて難
しそうです。


710:デフォルトの名無しさん
09/04/03 18:18:09
>>705
分散型なら各自の設定ファイルもバージョン管理できるだろうけど、
それだけの為に分散型にするのはどうだろうね。
あなた一人だけでやってるなら頑張って使い方覚えればおkだけど。。。
antとかrakeみたいなので設定ファイルをジェネレートするようにしたほうが
適してるかも。

711:デフォルトの名無しさん
09/04/03 18:46:32
xmlでもiniでもconfigでも、拡張子の後に更にsampleとか拡張子付加して管理してる
使う側が勝手にマージしろって感じに

712:デフォルトの名無しさん
09/04/03 18:47:42
んでコミットされないようにignoreにも登録

713:705
09/04/03 19:13:18
>>710
おっしゃるとおり、当分はSubversionから離れることはできないでしょう。
分散型については将来に備えて知っておきたいと思っています。

ant や rake については、毎回ユーザが設定値を与えるならわずらわしいし、
値を保持するなら、その値をどうバージョン管理するかという話に。

>>711-712
それはTortoiseSVNのチュートリアルが推奨している方法ですね。
(サイトが落ちているようなのでキャッシュ)
URLリンク(72.14.235.132)

うちもそうしているのですが、テンプレートが更新されても気づかないんです。
ユーザにマージさせるのに、メーリングリストで通知することになります。


714:デフォルトの名無しさん
09/04/03 20:13:50
別にそれで良くね?
あとはpost-commitにでも特定のファイルがコミットされたら
注意しやすいように、分かりやすくなるようにスクリプト書くだけじゃん

715:705
09/04/03 21:08:44
>>714
なるほど、テンプレートファイルが更新されたら、自動でMLにメールを投げる
とかですね。

結局、その辺に落ち着くしかないのかもしれません。自分の当初のアイディア
も、例えば設定項目が増えた場合、その増えた値を個々のユーザに書き換えて
もらう必要があるなら、通知が必要なようですし。


716:デフォルトの名無しさん
09/04/04 01:09:39
>>705
うちはgit使ってるけど、
- ベースとなるブランチをmasterとする
- ホスト毎にそのホスト固有の修正を行うブランチを用意(host/foo, host/bar, ...)
- masterに更新があった場合はgit rebase master host/fooとして各ホスト用データを更新
としてる。

717:デフォルトの名無しさん
09/04/04 08:47:23
>>716
便乗質問させてください。
その場合は、ローカルの仕事を本家にcommitしたいときはcherypickするのでしょうか?
そのままmergeしちゃうとホスト固有の部分も区別なくmergeされちゃうので、
まずいですよね。


718:716
09/04/04 16:29:32
>>717
そもそもhost/fooではホストローカルな修正しかしないので、masterにそういう修正を持っていくことはないよ。
masterに持っていきたくなるような修正はmasterで作業すれば良いんだし。

それでも誤ってmasterで行うべき作業をhost/fooでしてしまうことはあるかも知れない。
そういうときは
- まだコミットしてないならgit checkout -m masterでブランチ切り替えて作業継続。
- 既にコミットしてたらmasterで該当コミットをgit cherry-pickしてから
 ホストローカルなブランチではgit resetやgit rebase -i masterで該当コミットを抹消。
としてる。

719:636
09/04/07 02:47:46
ファイル構成が大幅に変わってpatchがあてれなくなっていたので更新した

720:デフォルトの名無しさん
09/04/07 04:04:43
gitでhttp:/server/proj.gitからコミットasdf1234....を取りたい
んだけど、どうやればいいの?

全部取ってrevertを使ってみたが訳が分からん。
あまりに説明が無さ過ぎて泣ける。



721:デフォルトの名無しさん
09/04/07 10:35:04
全部取ってるなら

git checkout asdf1234

でいいんじゃないか?

722:デフォルトの名無しさん
09/04/07 18:42:00
>>713
各自用のバージョン管理しないローカル設定ファイル(ignoreされる)を
用意して、テンプレート設定ファイルの各値を上書きするように
ビルドツールを組んで、実行環境が構築されるようにしてやってるよ。
この場合、テンプレートにローカル設定がマージされるので、
ローカル設定ファイルの内容は古くても動く可能性がある。

もし各環境用の設定も全てあなたがメンテしないといけないなら、
各環境用にブランチ作るとかかなー

723:デフォルトの名無しさん
09/04/08 02:47:45
tracがパッケージとして既にあるubuntuか
安定性のcentosか
どっちでリポジトリ関連の鯖たてようかなあ

724:デフォルトの名無しさん
09/04/08 08:56:58
ubuntuのパッケージって結構古いのばっかりじゃなかったっけか。
あと日本語化するならapt使って入れるのはやめといた方がいい希ガス。

725:デフォルトの名無しさん
09/04/08 21:34:44
Ubuntu,Debianはbackportsで多少新しいのが入る。
CentOSはrpmforgeで同様に。
日本語化するならtracをいったん入れる直前までやってtracに必要なパッケージをメモって、
で必要なパッケージを入れて、日本語版Trac入れる、かな。

あと、ちょいとスレ違いなので、Tracの話題ならこっちの方がよいかと。
【バグ管理】 BTS使ってる?【追跡゙】 2
スレリンク(tech板)l50

726:デフォルトの名無しさん
09/04/08 23:25:22
メッセージ翻訳担当募集
URLリンク(groups.google.com)

>なぜかリリースノートには記載されていないのですが(笑)、
>一応 Mercurial 1.2 版からヘルプ類が日本語化されています。
>しかし、ちょっと試してみればお分かりのように、まだまだ翻訳網羅率が
>高くありません。とはいえ、数が数なので、私1人の翻訳では、流石に
>ペースアップにも限界があります。



727:デフォルトの名無しさん
09/04/09 02:51:34
>726
日本語のmanがかなり古いんだが、そろそろ更新しないのかな?
mercurial wiki上に有るんなら俺が訳してもいいんだが。場所違うし。


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