Subversion r15
■ このスレッドは過去ログ倉庫に格納されています
Subversionはフリーなオープンソースのバージョン管理システムです。 公式HP Apache Subversion http://subversion.apache.org/ ようこそSubversion.JPコミュニティへ http://www.subversion.jp/ ■記事(最近) 「Apache Subversion 1.7.17」リリース 2014年5月20日16:15 末岡洋子 http://sourceforge.jp/magazine/14/05/20/161500 > 1.9は第2四半期中にリリースを予定しており、 バージョン管理システム「Subversion 1.8」が登場、競合解決ツールや出力の改善など変更点多数 2013年6月19日15:15 末岡洋子 http://sourceforge.jp/magazine/13/06/19/151500 バージョン管理システム Subversion にバージョン1.8 登場 ― なぜ Git ではなく、SVN を使うのか? Sean Michael Kerner 2013年6月20日 / 19:30 http://internetcom.jp/webtech/20130620/8.html ■Subversion の開発元 What's Next for Subversion? https://www.youtube.com/watch?v=KjxcLHss-p8& ;list=UU9xOkklmZFT3N2UtV2zy3ow >>5 > ― なぜ Git ではなく、SVN を使うのか? ローカルコミットをサポートしてクレー subvertionがgitになるなら もうgitを使ったほうがいい気がするがw subvertionから移行しやすいのは、gitでなくhg subversion は良くも悪くも普通のバージョン管理ツールだけど git って、パッチ管理(リモート、ローカル)&マージ処理に特化したのが勝因だよなー Linusとしては自分に必要な、Linuxのパッチ適用に必要な機能だけ あればよいって言う考えでgitを設計したんだろうけど。 subversionはソースコードを管理するツール gitは機能単位でコミットを作るための開発ツール フツーの業務システム開発ならsvnのtrunk一本でそれほど困らんけどね 複数人で同じソースをいじくりまわしてマージが大変なんてことは無いし >>17 ぼっち開発者の俺はtrunkだけでほぼいける。 以前のバージョンに戻すこともめったにない。 ビルド出来ないとか、動作が不完全のような中途状態で取っておきたいときに ブランチを作って、OKになったらtrunkへマージする。 このブランチ側の作業を、ローカルリポジトリか何かで自動化できるとうれしい。 gitのリモート/ローカルってそういうものなんだろーなーと指を加えて見てる。 >>19 ぼっち開発ならそのまま trunk 上で開発もありだろ どうしても途中で元のバージョンに修正入れたいなら、その時ブランチ切ればいいんだし >>21 コミットの考え方が違うね。 svnは単なる作業履歴って感じだけど、 gitはコミットを一つ一つに意味があって 大事にしている。 Git、Eclipse.orgでCVS、SVNを超える 作者: Alex Blewitt , 翻訳者 笹井 崇司 投稿日 2011年12月11日 http://www.infoq.com/jp/news/2011/12/eclipse-git 今から思えば、2010-2011に掛けて、Subversion からgitへ ユーザーの移行が進んだな Subversion 1.7以降は、日本語の記事も極端に減った感じがする 多いというか、整理されていないというか かといって無いと不便というか 慣れるしかないというか 新しく始めるときはgit使うようにしてるけど、慣れたらsvn使うの面倒くさく感じるようになってきた。 >>20 その運用するなら「元のバージョン」として扱うだろうと考えられるリビジョンでタグ打っときなよ >>25 > 整理されていないというか ほんこれ 確かにあったらいいな〜は、あるんだけど、なれるまでがちょい大変 >>28 ぼっち開発だとログもたいしたことないし... まあ、リリース毎には外部バージョンでタグ打つけどね 一人でやってると、コミットの扱いが雑にならね? 何か修正している時に、つい近くの コードが気になって関係ないのに修正しちゃう。 で、コミットメッセージに○○の修正って書いてるのに、 無関係の修正が含まれてたり。 狭く深くか、広く浅くかで分けて 広く浅い方は「後で絶対に戻さない」という信念を持ってコミットする > 広く浅い方は「後で絶対に戻さない」という信念を持ってコミットする 一つ一つに信念を持たないと コミットできないなら疲れるってw 人間である以上、漏れっていうのは絶対にある。 こんな些細な事はあとから修正すればいい話でgitならそれができる。 単に数日前に戻りたいだけとか、コミットにいちいち信念なんてうぜーとかなら、 別にわざわざscm使う必要なくね? そういうやつはどうせコミットメッセージなんてロクにつけないんだろ? このスレでいうのもなんだが、そういう使い方しかしないんなら、 nilfs2などのログファイルシステム使っとけば十分な気がするが。 webdavなクラウドストレージでもいいし。 無理してscm使う必要ないと思うけど。 コミットの内容に気を使うか、 単なるバックアップとして使うかの 違いだよね。 バックアップとしてしか使ってない人は ソースコードを管理しているわけじゃないというだけのこと。 その差分が、一日とかの時間単位の差分なのか コミット=機能 単位の差分なのかで意味が違ってくるけどな。 しっかりコミットには機能を含ませないとダメだよ。 ○機能のコミット、間を空けて、○機能のバグ修正とか 機能が複数のコミットに分断されたりすると、差分調べづらいからさ。 >>40 一機能が数十ファイルに渡る数千行の変更になることが普通だから、機能毎のcommitは粒度が大きすぎる。 粒度が小さくしようと思えば、 コミットの回数は必然的に多くなると思うけど、 そうすると大変にならね? ちょっとしたミスでもしないように 心がけないといけないから、テストに時間が掛かる。 >>42 昔、1つの障害直すのに機能修正用に一回コミットして、 その後ソースのインデント変更でもう一回コミットとかした事がある。 確かに細かくコミットした方が後で見るときに分かりやすいというのはある。 >>40 ブランチ作ればいいんでないのと思うんだけど、それではだめなのかな。 >>42 粒度を小さくするってことは、固まったところからコミットしていくということなので 特にテストの手間は増えないよ。 >>43 気持ちは分かるんだけど、インデントに関してのみいえばdiffのオプションで インデント変更を無視することができるので、分けなくても大丈夫。 むしろ、特定リビジョンにおいてインデントが崩れている状態を生み出したというのは 個人的にはあまりよろしくないと思う。 1.8.10が出たのか そろそろgitに移行するかなー >>45 > 粒度を小さくするってことは、固まったところからコミットしていくということなので > 特にテストの手間は増えないよ。 固まった所からコミットするってどうやるの? ファイルの一部分だけコミットとか出来ないよね? あと固まった所からコミットというのは 作業が直列化してるんだよね。 ある機能を作ろうと思ったら、 ・サブ処理A ・サブ処理B ・サブ処理C みたいな感じで機能を作っていくでしょ? その時サブ処理Aができたーと思って B、Cを作っていくけど、その間に見逃しがあったり 問題が見つかって再設計が必要になる。 そういうときサブ処理Aのコミットを 修正できないのはキツイよね。 >>48 > そういうときサブ処理Aのコミットを > 修正できないのはキツイよね。 言ってる意味がわからないんだが・・・。 BあるいはCをきりのいいところでcommitして、Aを修正すればいいのでは・・・。 >>49 そうすると、Aのコミットと Aの修正のコミットの二つが出来るでしょ? うん。 そういうものを管理するためのツールだもの。 >>51 意味を考えたことある? Aのコミット+Aの修正であれば、その二つを まとめたコミットが一つだけあれば十分。 もちろんリリースした後なら別に分けたほうがいいけど、 一時間前に書いたコードのケアレスミスとか残す価値はない。 残しておけば、過去のコードを見る必要がある時 (見る必要があるから残すわけで)余計な手間がかかる。 コミットの内容を小さくすればするほど、無駄なコミットはなくそうと 考えるのが普通では無いかな? >>52 確かにバグ修正のコミットは結果的に言えば無駄だね。 じゃあ、いつコミットできるの? バグが一切存在しないコードを書けるクヌース先生みたいな人なのかな。 >>52 詭弁だね。 gitでもローカルではこまめにコミットするよ。 gitでは、みんな整えてからサーバーにプッシュしてくれるから、機能単位になるけどね。 SVNでそれは出来ないし、現状そういう使い方には向かない。 >>53 最も過ぎて感動した。 >>53 ゼロにしろって話じゃない。 少なくしろって話。 >>55 そうだね。むやみに細かなコミットはするべきじゃないよ。 それと、固まったところを切り出してコミットをするのをやめろって話とは矛盾しない。 開発の概念的なステップにおいて不可分なものについて、一部を切り出してコミットするという話ではないし、 逆に>>48 でいうところの3つのサブ処理が互いに疎ではないのであれば、Aのみをコミットするのはどうかと思う。 分けるべきことと分けてはいけないことを把握できてるなら、たぶん考えてることは同じだと思う。 なんかこう、>52は根本的なところでVCSを理解できていないか それとも何かの教条主義に陥っているのか。 いずれにしても、tagやコミットログを使いこなせていないのだろう。 経験則でいうと、手当たり次第に手をつけながら改修を行うような人にはVCSは向かないと思う。 それはひとえにコミット単位が大きくなりすぎるからという理由。 この手の人は大抵コンフリクトに頭を抱え、VCSに対して文句を言う羽目になってる。 時がたち、コミット単位をうまくまとめられるようになったころには、 手当たり次第に改修するというスタイルは矯正されてると思う。 そもそもツールに問題があるとは考えないのか? gitではできるが subversionではできないんだよ。 >>59 > 経験則でいうと、手当たり次第に手をつけながら改修を行うような人にはVCSは向かないと思う。 それは違うな。 >>53 が言っているように、 > じゃあ、いつコミットできるの? > バグが一切存在しないコードを書けるクヌース先生みたいな人なのかな。 バグが一切存在しないことはない。 だから手当たり次第にコミットすしたのと同じことになる。 だからこそgitではそれを後から修正できるようにした。 subversionというツールに問題があるんですよ。 個人的には、意味のある単位であれば、コミットは細い程良いと思ってる。 その、程々の粒度のコミット単位を見つけられるかが経験なのかもしれないけどね。 俺も経験上の話をすると、でかいコミットをカマス奴は信用できないヤツが多い。 しかも、不具合やリファクタリングを指摘しても、何だかんだで直してくれない。 (その理由の一つが、履歴が汚れるからとか、おかしいだろ…) >>63 あるある 所詮開発ツールのログにすぎないのに、そのログの保守が目的になっちゃう人 極端に偏るのはウザいし、業務遂行の妨げだよね〜 程々でいいんだよ、何事もバランスが大切 >>48 A, B, C 用にブランチ切って各々単体テストまで完了してからコミットすれば? >>56 > 逆に>>48 でいうところの3つのサブ処理が互いに疎ではないのであれば、Aのみをコミットするのはどうかと思う。 つか、互いに疎になるように分割しないと駄目なのでは? まあ、「ある機能」の規模感が人によってさまざまで、だから意見が食い違ってる気がする。 俺の場合は、「機能」で分割した場合、コードの行数は500〜3000行くらいで、500行の場合でも クラスを3つ、メソッドそれぞれ10〜30行とかで、メソッド一つ〜数個ごとにコミットする感じ。 1.9 って、DB機能の強化がメインなのか? バックグランドの機能強化とか誰得なんだ? >>71 これ、なんだ? Developer-visible changes: - General: * support generating VS 2013 and later project files. 大規模CI環境になるとsvnが性能ネックになりうるので バックエンドの強化は地味ながら効果的 データベースを強化しないと機能追加が難しい。急がば回れ。 OSS関係はgitが主流になったんで開発を急ぐ必要も無いから >>77 subversionにもメリットがあって、 gitとsubversionのどちらがいいか戦ってるって 話かと思ったら、 Subversionの呪縛から抜だしてGitへ移行する戦い・・・が長引いてるって って話でワロタw タイトルの訳間違ってるだろwww gitに移行した方がいいプロジェクトも確かにあるけど、 プログラマー以外の職種が多い場合や、 巨大なデータを扱うのがメインだと難しいね >>77 すでにコメントで指摘されてるけど、下二つのグラフが同じだな おぼちゃんじゃないけど、こういうミスがある記事はあまり信頼できない 適材適所という言葉が奴らの辞書には載ってないんだよ 適材適所? 中央リポジトリには subversionが適してると思ってる? 残念。中央リポジトリにしか使えないんだよ。 rebaseできないからな。 >>79 うん。困りまくり。 小さくコミットが出来ない。 コミットした後で並び替えできない。 ブランチ切り替えに時間かかる。 そもそも、ブランチ切るのが大変 Subversionじゃ気軽に何十個もブランチ切れない。 こんなの使えないよ。 他人のことを考えたとしても、 できることは多いほうがいいよ? >>86 > できることは多いほうがいいよ? 多機能家電に憧れちゃう人? w git はもう少し機能を整理した方がいいと思う。 VCSに何を求めるか人それぞれなんだから意見が合うはずがない ほっとけよ >>88 VCSにrebaseを求めない人がいるのが信じられないんだけど。 だって普通開発してたらケアレスミスするじゃん? コミットした後で気づくってよくある話だと思うけど。 ケアレスミスじゃなくても単にバグとかさ。 そんなのは普通に直して普通にコミットすればよろしい。 rebeaseだのはVCS的には邪道。 うっかりだろうとケアレスミスだろうと、それすらも履歴として残すことに 本来的な意味がある。 わからないな。 ミスさえしなければ、本来できるはずがなかったコミットを 残す理由って何よ? もちろん単なる履歴だ。それ以外に特別な意味はない。 すべてのコミットが単なる履歴なのだから、強いて言えば「こんな馬鹿な奴が いました。次のプロジェクトからは外した方がいいですよ〜」という証拠でもある。 >>94 じゃあ、そのコミットに価値はないって認めるわけだね? コミットの価値を理解しないとダメだよ。 コミットというのは、その一つを取り込んだり取り外したり どこで問題が入ったかを調べたりするもの。 そういう風に利用できなければコミットにする理由がない。 それができるためには、1つのコミットが意味のある単位に なっていなければいけない。 意味のある単位をむやみに分割したりとか 複数の単位をまとめてしまったら、コミットが使えなくなる。 rebase出来るということは潜在的に「履歴を間違えて消してしまう」リスクを背負う事になっちゃうからね。 ま、ローカルでのrebaseであれば作業者の責任範囲なのでウェルカムこの上ないんだけど。 人間だから、コードにバグ入れるのも当たり前、コミットミスするのも当たり前、同様にrebaseミスするのも当たり前だということ。 この中で一番ミスった時のリスクが高いのがrebaseなので、不要と考える人の気持ちもわかる。 rebaseでミスっても、簡単に元に戻せるから 問題ないのでは? もちろんすぐに気付けばreflogとかでやり直せばいいと思うし、ローカルでやってくれる分には別に気にしないよ。 共有リポジトリに対してやられたりして、更に何らかのミスていることに気づかないで放置されると後々面倒だなーと。 人のコミットまでrebaseできちゃうわけだし。 勿論欲しい事は欲しいんだけど、集中型のsvnには、「まだ」時期尚早な機能じゃね? やっとわかった。自分勝手な基準で「意味のあるコミット」だとか 「意味のないコミット」だとか、そういうものが存在するという幻想を 抱いてるレベルなのか… できればVCSを使わないで欲しいな、そんな奴には… 逆なんだよ、「コミットする事に意味がある」んだって分かって欲しいね。 >>99 > 人のコミットまでrebaseできちゃうわけだし。 人のコミットって言っても、それローカルじゃないでしょ? ”人のコミット”といえば、ローカルの話だと思うんだけど? ローカル(つまり自分のhome以下)にあるものは普通 ディレクトリ共有しないのだからそれは勝手にrebaseできないよな。 で、サーバーにあるものは勝手にrebaseされたとしても気づく。 (ローカルと食い違ってるのでちゃんと知らせてくれる) そもそもローカルにある自分のコミットがオリジナルで そっちは無事なので何の問題もないけど。 目的と手段が入れ替わってるんだろうな。 コミットすることが目的になっちゃってる。 コミットを使わないと 何の意味もないのに。 >>101 直線履歴が基本のsvnだと確かに全ての作業ログを残して欲しくなるね。 でも、ブランチと機能コミットが基本の分散型だと、すごーく履歴がカオスになるので、rebaseで直線化して欲しくなる気持ちもわかるよ。 あぁ、作業ログ。そうかsubversionは 単なる作業ログなんだ。 コミットを使うという発想がないんだね。 オープンソースの開発なんかだと コミットを送ったりするわけだけど、 そうか単なる作業ログか。 >>106 アオリたいだけなら、俺はもう引っ込むね。 そんなやり合いには何の実もないから。 適材適所なんだから、そういう突っかかり方するのもどうかと思うよ。 >>107 あるけどそれが? svn使っている時から苦痛だったよ。 コードレビューしやすいように したかったのだが無理だった。 git使ってから、ツールが悪かったんだなって わかった。 >>108 だって作業ログなんでしょ? コミットする事に意味があるだっけ? コミットすることが目的だみたいなこと言ってるし。 言いたいことがあるのなら言い返せばいいのに それもできないでいるしさ。 社内の仕事だったら、適当な作業ログでいいかもしれないけどさ、 これが赤の他人に提出するパッチだったら コードはちゃんとレビューできるようになってないとダメだよ。 赤の他人のコードなんて信用出来ない。 コミットがきちんと理解できるように 意味のある単位に分かれていなければ、 受け取ってもらえない。 >>111 何だ、適材適所という事をわかってるじゃないか。 それなのに何でそこまで君の正義を主張したがる? 君の言うことは正しい。 でもそれが全てじゃない。 >>77 >>81 読んだ感じでは、俺が感じていたのと殆ど同じなので、違和感が無い。 2010年頃から、雪崩のようにsvnからgitへ人が移動していったと感じていたけど 記事を見て、自分の思っていた通りだったと確信した。 SVNに関する需要が0になる事は無いと思うからどこかで、下げ止まると思うけど svnを使う理由は「今更やめられない」か 「新しいものを覚えたくない」だけになりそうだね。 機能で言えばgit > svnなんだよな gitはsvnの代わりに使えるが、 svnはgitの代わりにはならない。 svnはコミット単体でが何というブランチになされたものかわかるけど、gitは… >>118-119 でもそれって、できても役に立たないですよね? 巨大プロジェクト全体のcloneなんて無駄なことしたくないからね gitがoss向きなのは明らかだね。 自然集約と自然淘汰を本質とするossの性質に良くマッチしている。 一方、統制を基本とする企業という枠組みの中では必ずしもマッチするものではないと思う。 ただ、企業と言ってもこれまた多種多様で、ソフトウェア実装専門であればgitが適していると思う。 gitは良くも悪くもテキストに特化したツールだから、他の文書や成果物を合わせて管理するには向いていない。 ソースコードだけ対象で、計画的な開発体制が出来てるならgitの方がいいと思う そうでない場合、subversionがいい場合もある >>122 巨大プロジェクトってたとえばどんなの? もしかして無関係のものまで 一つのリポジトリに入れちゃったりしない? だめだよ。プロジェクトごとに リポジトリは分けなきゃ。 ん? またソースコードを管理するから ソースコード管理ツールに データ入れてるって話? >>125 > だめだよ。プロジェクトごとに > リポジトリは分けなきゃ。 なぜ? >>125 のように頭の悪い奴が支持してるのがgit >>129 dump, restoreが重すぎる。リポジトリが大きくなるともうだめぽ。 だがヘボが管理するとプロジェクトごとのバージョン合わせに無駄な手間が おれも問題はそこだと思う。 実行ファイルにコンパイルされるソース一式と仮定すると、 たとえばひとつの実行ファイルだけで完結してしまって、 他の実行ファイルとの関係など全くないような 小さなモノしか扱ったことのないやつにとっては、きっと (実行ファイル) = (プロジェクト) = (リポジトリ) という頭しかないんだろ。 >>134 > 「プロジェクト」の定義は? プロジェクトっていうか プロダクトかな。 プログラマなら疎結合にする重要性は知っていると思うが、 プロジェクト定義は別々にリリースしても問題ない単位でいいんじゃないかな または別々のバージョン番号をつけている単位でもいいかも ようするに商品として独立していること。 >>135 プロジェクトには複数の実行ファイルがあるわけだけど、、 当たり前だけど、それでも全部を一つのリポジトリに入れたらダメだよね。 無関係のものもあるわけだし。 プロジェクトごとにリポジトリを分ける。 一つのプロジェクト(リポジトリ)には複数の実行ファイルが入ってる。 これが理想だろうね。 使いやすいように使えばいい、理想なんかねーよ。ハゲ。 全部一つにまとめると。一部だけ移動したりする時とかに 使いにくくなるんだよな。 特定のプロジェクトにはアクセス制限かけるとかさ。 (使いにくいから)一つのプロジェクトに まとめるなという話をしてる。 >>139 使いにくくなるのは、おめーが使い方知らないだけ。 >>137 関連する実行ファイルのソースはすべてひとつのリポジトリに揃ってないと、 各実行ファイル間の関係を追跡できなくなってしまう。 プロジェクトが「プロダクト(製品)」の意味ととらえても、 おれのところではひとつの製品の中に無関係のものなんてないし、 ひとつのソース一式が複数の製品で利用されてたりもするから、 それらが全部同じリポジトリにないと管理ができなくなる。 また、ひとつの製品は過去のバージョンとの連続性もあるが、 過去の経緯によってもモジュール間の依存関係は変わってくる。 無関係のものをその時点の状況だけで別のリポジトリに分けてたら収集がつかない。 パッケージ商品の開発では、ひとつの部署で開発した成果物はひとつのリポジトリに納めてる。 特定の顧客から発注された開発では専用のリポジトリを作ることもあるけど、 パッケージ商品の一部成果物を利用して工数を削減したりするので、 パッケージと同じリポジトリにブランチを切ってそこに突っ込むことが多い。 でないと、パッケージ商品に含まれてる標準のものと 特定顧客向けに一部修正したものとの履歴の違いがわからなくなる。 結局、おれのところでは基本的にライセンスや使用許諾条件によってリポジトリを分けてるかな。 異なるライセンスのソースが同じリポジトリにあっちゃマズイから。 関連する実行ファイルのソースはすべてひとつのリポジトリに揃ってないと、 各実行ファイル間の関係を追跡できなくなってしまう。 逆に言えば、関連しなければ何の問題もない。 これ以上の話はする必要がないとおもう リポジトリは分けた上で、リビジョン指定のsvn:externalsで関連付けたらいいのでは やり方は沢山あって、それなりに一長一短ある。 > オレ様のやり方が一番良い。オレ様のやり方でやるべき。 と言い出すバカは死んでくれ。 雑多なファイル、資料を扱うときに部分チェックアウトは凄く便利だよな >>142 むやみにひとつのリポジトリで運用すべきではないという主張になってると思うんだけど、 当初はdump restoreが重過ぎるからひとつにするなといっていたよね。 言葉を変えると、 むやみにリポジトリを分けてしまうと追跡できないものが生まれうるというところに異論は無いと思うんだけど、 dump restoreが重いという理由以外にひとつにまとめるべきではないという理由は何かあるの? ちなみにdump restoreの重さが気になる頻度でそれを行っているのなら、そこを改めるべきだと思う。 >>148 当初はじゃなくて独立した理由だろ。アホウ。 パッケージ管理とバージョン管理の区別が付いてないと 悲惨なリポジトリになる >>150 独立したそれぞれの理由を書いてるけど、どれもこれも分けないことによって生まれるデメリットに相当しないんだもの。 ソースコードのバージョン管理とプロダクトの構成管理は別物だしなぁ この流れは何度も繰り返されているけれど、そのたびに分けなくていいという結論になってない? >>5 >バージョン管理システム Subversion にバージョン1.8 登場 >― なぜ Git ではなく、SVN を使うのか? >Sean Michael Kerner >2013年6月20日 / 19:30 >http://internetcom.jp/webtech/20130620/8.html 訳がおかしいから原文読んだけど、 http://www.developer.com/open/subversion-1.8-gits-new-features.html 1.9 を9か月のサイクルで出したいとか言ってたけど、無理みたいだな。 これぐらいの速度で出して欲しい 2005年12月21日 - 1.0.0リリース 2006年1月9日 - 1.1.0リリース 2006年2月13日 - 1.2.0リリース 2006年4月19日 - 1.3.0リリース 2006年6月11日 - 1.4.0リリース 2007年2月14日 - 1.5.0リリース 2008年8月18日 - 1.6.0リリース 2010年2月13日 - 1.7.0リリース 2012年10月21日 - 1.8.0リリース 2014年2月14日 - 1.9.0リリース 2014年5月28日 - 2.0.0リリース 2014年8月15日 - 2.1.0リリース subversionにgit flowとかgithub flowみたいなのってある? subversionを使ってどういうふうに運用するかを 決めた開発のフロー あとどういう時にブランチ切ってる? バグ修正用のブランチとか切っていい? そうするとたとえばバグが100個あったら 100個ぐらいブランチ出来るんだけど 名前つける時どうしてる? 誰が作ったブランチかわからないから 頭に個人名のプレフィックスつけようかと思うんだけど 変なやり方じゃない? 要らなくなったブランチは削除していいよね? ブランチは削除できるみたいだし。 大抵のバグはブランチを作るほどじゃないなぁ。影響範囲も小さく、内容が明白であれば1コミットで済むでしょ。 オレオレブランチは大抵イマイチな命名だけど状況次第。 砂場として使うならアリ。バグフィックスのために個人名をつけるのは全力でナシ。 要らなくなったブランチはどんどん削除。 > 大抵のバグはブランチを作るほどじゃないなぁ。影響範囲も小さく、内容が明白であれば1コミットで済むでしょ。 一人でやっていればいいけど、複数人でやってると そうも行かないよね? 並列で複数の作業が発生するわけだしコードレビューも必要。 >>163 > 一人でやっていればいいけど、複数人でやってると > そうも行かないよね? 修正範囲が多岐に渡るでかい修正ならそうだけど、大抵の修正は一人でやってる範囲に収まるよ でかい修正の時は修正方針決めた段階で関係者集めてレビューするから いや、書いたコードをレビューしないと、 修正方針通りでも、コードがダメな場合があるじゃないか コピペされていたり、正しくない構造を指定たり。 それに複数人でやるっていうのは、修正する人が一人かどうかじゃなくて、 平行して、別々の開発があるじゃないかって話。 一つのプロジェクトの新規機能Aを担当する人、 同Bを担当する人、同C担当する人、バグ1を修正する人、以下略って。 そういう人が、それぞれtrunkにコミットしたらダメだろ? だからブランチという機能があるんだが。 >>166 > 一つのプロジェクトの新規機能Aを担当する人、 > 同Bを担当する人、同C担当する人、バグ1を修正する人、以下略って。 > > そういう人が、それぞれtrunkにコミットしたらダメだろ? ん?それって10人で開発する場合、最低10個のbranch切って各人がそれぞれのbranchで開発するってこと? それ、いつtrunkにマージするの? >>168 そりゃできた順(もしくはリリースする順)にマージだろ >>169 > そりゃできた順(もしくはリリースする順)にマージだろ で、、マージ後branchは消すの? 消さないと、1リリース毎に見ると数百のbranchが残るよね。 それとも、マージ後trunkの変更点をbranchに取り込んで、各人はそのbranchで作業を続行するのかな? それだと、branchの意味あんまなさそう・・・。 ブランチの利点が理解できてない人がいるとは思わなかったw そんなもんだろ。 subversionをバックアップとしてしか使ってない証拠。 まあ、普通はマージを日常的に使ってたら subversionは使いづらくてしょうがないから gitに移行するんだけどねw こりゃ面白い。急成長じゃないか。 明日にもgit叩きを始めそうな展開で胸が熱い。 >>161 ブランチどうやって切ればいいんですかね;; >>163 トンチンカン >>166 だからブランチという機能があるんだが。 >>174 > >>161 ブランチどうやって切ればいいんですかね;; 質問は「どうやって切る」じゃなくて 「どういう時に切る?」だろ? 開発フローを効いてるだけだと思うが? 160 名前:デフォルトの名無しさん[sage] 投稿日:2014/08/24(日) 16:17:32.62 ID:1q09/hom subversionにgit flowとかgithub flowみたいなのってある? subversionを使ってどういうふうに運用するかを 決めた開発のフロー なんだ、じゃあどういうときに切るかはまだ分からないままか。 じゃあ >>162 のまま特に変える必要ないなぁ。 >>176 並行開発はどうやってるの? 新規機能を幾つか平行して開発している場合。 >>176 一人開発で使ってるだけで、そういう高度なことは やってないから知らない。って答えてもいいんですよ? ID:W/mMJDzTはsubversion book読んで出直しなさい。 レベルが低過ぎて会話に追従出来てない。 そう言えば俺svnでは一度もマージ使った事なかったな… なんて事、trunk一本糞なオープンソースに関わりながら思い出した subversionの人にとってはsubversionは バックアップツールなんだよ(笑) http://www.amazon.co.jp/o/ASIN/4798013730 > 内容(「BOOK」データベースより) > この本は、Subversionというバックアップのためのソフトについて説明したものです。 > 内容(「MARC」データベースより) > > Windows上で使えるバックアップツール「Subversion」の基礎知識から > 具体的な使い方までをわかりやすく解説。テキストファイルも画像ファイルも、 > ファイルもフォルダも、好きなときにバックアップできる! >>177 ブランチ作るよ。普通に。 てか、バグフィクスでブランチを作るかどうかの話じゃないの >>168 人単位でブランチは作らない。 >>166 が一機能一人みたいな書き方してるからアレだけど、 新規機能が10個あって、それらのリリースタイミングが同一であることが明らかではない場合、 個別にブランチを作る。 >>170-171 複数バージョンを並行してメンテする場合、リリースブランチとして運用をするために残すこともある。 大抵は、リリース時にタグを打っておいて、必要ならタグからブランチを作成してメンテするけれど。 | \ __ / _ (m) _ピコーン |ミ| / .`´ \ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (・∀・∩<そうだ!subversion の開発は、git を使ってやればいいんだ (つ 丿 \_____________________ ⊂_ ノ (_) gitならば、gitならば問題ない と言いたい人がいるようだけど、 どう問題ないのか是非聞かせていただきたい。 >>160 ,161の質問でここまで紛糾する理由がワカランチン > subversionにgit flowとかgithub flowみたいなのってある? 俺もあるのか知りたい 別にブランチを避ける文化もあるってことでいいのでは。 >>166 バグに対するブランチの話じゃないのか? いつの間に複数の機能追加の話になったんだ? >>186 >>160 で揉めてる訳じゃないでしょ Subversion にはその手の機能はないと思う ブランチ云々は宗教戦争ネタなので大抵揉める そ、そうなのか、gitには運用フロー機能があるのか。。 >>190 ああ、git flow で使うフローと言うか、お約束について聞いてたんだな そう言う意味なら trunk/tag/branch も一つのお約束だから、あるって言えなくもないかな >>191 まあ、git flow は運用フローの支援機能ではある >>192 > そう言う意味なら trunk/tag/branch も一つのお約束だから、あるって言えなくもないかな trunk/tag/branchがある前提で、git flowのような運用をする方法がsvn界隈で確立されてるかって疑問だと思う。 そして、それは確立されていない。 >>194 > そして、それは確立されていない。 どういう基準で確立されてないと言えるんだ? されていないと言い切るんだから、明確に答えられるよね? 広く(一般に)知られた手法は無い。って事だろ。アスペ。 >>195 某かのbest practiceがあるなら、教えて欲しい。 確立されたbest practiceなら、多分それには名前が付いているはずで、ググれば少なくとも数千はヒットすると思われる。 そういうのある? >>197 trunk/tag/branch を切ると言うのも運用だろ? そして、各々にどんなものを入れるかを決めるのも運用だよね。 逆に言うと何ができてたら、best practice って言えるんだ? git flowってさ、trunk,brances,tagsっていうお約束より更に一つ上の層のお話だとボク思うんだ >>198 いやだからgit-flowとかGitHub Flowのようなものがsvnにはあるの?って話なんだけど。 まず最初にtrunk/tabs/branchesを作りましょうというところまではsvnbookでも推奨されていて、 ほとんどの人がそれに従ってると思われる。 ただ、どういうときにどういうbranchを切るかとか、いつ誰がどのbranchにマージするのかとか、 メインとなるbranchのマージ先はtrunkなのかそれともhoge-branchなのかとか、リリースは どこからやるのかとか、リリース後はどうすべきかとか、bugfix時の運用とか、そういう運用の お手本となるようなbest practiceってあるのか、そういうこと。 まぁ大体の所はオレオレ運用じゃないのかなぁと思ってるんだけど。 ちなみにうちは、Redmineの1チケットがtrunkへの1コミットとなるよう、必要ならbranch切れ、くらいで運用してる。 ベストプラクティスに名前をつけるという行為はさほど一般的じゃないと思うけど、 どのベストプラクティスがベストなんだ?という面倒なことを避けるために名前をつけるのはひとつの方法なのかなぁ。 大抵みんなやり方が同じようになってきてるから、こういうときどうすればいいのって聞けばいいんじゃないかな。 >>201 > 大抵みんなやり方が同じようになってきてるから、 そうなの? 新機能の実装をtrunkでがんがんやる派とそうじゃない派で、まず大きく二つに分かれる気がするけど。 俺は1本のままで保守モード移行と同時にそこまでの履歴丸ごとコピーで別リポジトリに追い出してた@decade ago 1.x/trunk---t-2.x/trunk---t-3.x/trunk---t-4.x/trunk--- L-1.x L-2.x >>202 えーっと、その前者の方法、それもありじゃないって思える? trunkで開発すすめて特定の所からリリースブランチ作るって やり方もあるよね。 >>199 一歩先なのは認める ただ、trunk/tag/branch も何もないところに比べれば半歩は進んでいるわけで、その間の何があれば best practice と言えるのか? って話。 >>200 とか http://danielkummer.github.io/git-flow-cheatsheet/index.ja_JP.htm の言ってることはわかるけど、運用をより具体的に決めてるだけとも言える。 >>206 ベストプラクティスの意味が分からないって言ってるんだろうか。 > 運用をより具体的に決めてるだけとも言える。 ベストベストって開発規模やコミット粒度によって何がベストかは違うだろ 統一見解なんて求めるのは無意味 >>207 ベストプラクティスにもレベルがあるって話。 0/1 でしか考えられないの? >>208 いや、それを言い出したらきりがない。 六割とか八割の人が便利に使えるならそれはそれで ベストプラクティス でいいと思うよ。 ただ、ベストプラクティスはこれしか認めんとか言い出したら、それはおかしいよね。 >>210 じゃあどうなればベストプラクティスなんだ?これは運用を決めてるだけじゃないかなんていう ばかげたレスをしなければいいのに。 二転三転してんよ。 >>208 多くの人が困った出来事に見舞われなくて済むように作られた集合知だから、 ある程度は統一されるよ。 >>202 の前者なんてのは痛い目を見て二度とするもんかと心に誓う手法でしかない。 1.9で予定されていた機能の殆どは延期 減り続けるユーザー MLへの投稿も減少の一途 Apacheからも邪魔者扱い どうすんの? >>211 ひょっとして壊滅的に理解力がないとか? w 俺は git flow も、trunk/tag/branch もレベルは違うが両方ともベストプラクティスだと言う立場だよ。 なので、>>194 に > 確立されていない。 と言い切る理由を聞いてるだよ。 まあ、 > >>202 の前者なんてのは痛い目を見て二度とするもんかと心に誓う手法でしかない。 とか言う人には、理解できないかな。 >>213 別に今のまま使えばいいだけでしょ。 そのうちもっと便利なものが出てくれば移行すればいいだけだし。 >>213 が subversion の行く末を案じて、何とかしようと思ってるならがんばれーって応援するけどね。 svnで言うtrunk/tag/branchはこう使ったらいいぜ! ってのがgit-flowなんですけど… >>214 いやだから「git-flowのような」svnの運用方法はまだ確立されてないよねって話なんですけど。 >>217 FreeBSDとか大きいプロジェクトならあるだろ。 お前が知らないだけ。 だから「ような」ってなに? 何を満たせばお前さんが言う「git flow のような運用方法」になるんだ? って話をしてるんだが。 >>219 例えば、Subversionを初めて導入するチームが、とりあえずの指針として使えるような運用方法。 初めて導入する場合、trunk/branches/tagsを作るところまでは良いが、おそらくそこで途方に 暮れることになるだろう。 つか、git-flowとかGitHub Flow知ってる? >>217 新規開発ならまだしも、trunkで"新機能"開発を認めるような人って、 develop featureブランチを作らないことで何が起こるかしらない人かもしんない。 そうなら説明しても理解できないと思う。 git flowは使ったことないけど、ブランチ構成管理の図を見る限りsvnでも大抵同じ構成でやってるよ。 svnやgit、他のVCSひっくるめてブランチ管理のベストプラクティスってのはもうあって、 それをサポートするための実装の一つがgit flowなんじゃないかなぁと思うけど、gitユーザから見るとどうですかね。 >>220 > おそらくそこで途方に暮れることになるだろう。 ハンドブックも読まないようなチームならそうだろうね。 http://svnbook.red-bean.com/en/1.7/svn.branchmerge.maint.html#svn.branchmerge.maint.layout > つか、git-flowとかGitHub Flow知ってる? >>206 のリンク先の内容では不足なのか? >>221 思い込みが激しすぎる trunk で新機能開発してるところもあるし、それでちゃんと回ってる >>222 もう、どう言ったらいいのか・・・。 svnbookで説明されてるされてることを、実際にどう運用するのが良いのかの指針となるような git-flowやGitHub Flowのような運用方針が、人口に膾炙された形でsvn界隈にあるのかって ことで、それはまだないでしょということなんだけど、わかんないかな。 長年svnを使ってれば、そりゃ自分たちにフィットした運用方針があるだろうけど、他SCMから来た人とか 初めてのSCMとしてsvnを選んだ(選ばざるをえなかった)人たちが、どう運用を開始すれば良いのかの 情報ってそれほどないでしょ。 そういうのがあれば、>>160 にこれを参考にするといいよってURLを示すだけで終了でしょ。 >>222 よりによってそれを貼るって、レベルが違いすぎて話にならない。ヨチヨチじゃねえか。 >>223 ちゃんと回ってるうちはそれでいいと思うもんなんだよ。 >>224 svnbook に書いてなくて git flow で決められてる方針とやらを書けばいいだけでしょ? 具体的に何も示さずに svnbook 見てもわからんけど、git flow なら方針書いてあると言われてもね。 なお、情報ソースは >>225 がレベルの高い奴を示してくれるらしいから、それでもいいよ (w 今になってtrunk/branches/tagsもベストプラクティス、がじわじわきだした >>226 > 具体的に何も示さずに って、俺はそんなもの(確立された運用方針)なんかないって言ってるんだから、示すも糞もないよ。 あるんだったら、お前がURL示せ。 >>228 はあ? git flow にはあるんじゃないのか? 両方ないと言うなら、それでもいいけど。 >>229 一体何の話をしてるんだ? gitにはgit-flowやGitHub Flowのような開発フローがあるが、svnにはそれに類するものがあるのか というのが最初の疑問(>>160 )。 で、そういうのは残念ながら無いというのが俺の主張。 「svnbook に書いてなくて git flow で決められてる方針とやらを書」いたものなんてどこにも無いよ。 >>230 だから、 > gitにはgit-flowやGitHub Flowのような開発フロー の具体的な内容を書いてくれればいいだけ。 svnbook には、典型例としてソフトウェアリリースや(特定機能の)開発におけるブランチの使い方が書いてあるけど、君は git flow はそんなもんじゃなくて、もっと色々決められてるって言うんでしょ? それを教えて。 http://svnbook.red-bean.com/en/1.7/svn.branchmerge.commonpatterns.html#svn.branchmerge.commonpatterns.release わかった上でわざとずれたこと書いて荒らしてるんじゃないかという気がしてきた。 ぐぐれば図はでてくるんだけどこれじゃ理解できないってことなのかなぁ。 http://image.itmedia.co.jp/ait/articles/1311/18/gitflow01_1.jpg そのやり方はsvnbookを見れば同じようなことが書いてあるとでも言い出すんだろうか。 まぁベストプラクティスおじさんも >>160 が欲しがるURLに辿り着けたようだし この辺でもういいんじゃないの? >>233 > そのやり方はsvnbookを見れば同じようなことが書いてあるとでも言い出すんだろうか。 そんなご託は、違いを説明してから言えば? へえ、svnbookでは、こんなことが推奨されてるのか。 > Developers commit all new work to the trunk. Day-to-day changes are committed to /trunk: new features, bug fixes, and so on. >>236 小規模なチームならそのやり方でいいだろうし、もう少し複雑な開発なら次の節にも目を通しておいた方がいい SVN1.6を使ってるプロジェクトで仕事をしている不幸な俺が来ましたよ。 今のプロジェクト資産をSVN1.8 に移行させたいんだが、dump してload でOKですか? >>239 この際gitに移行しろw そうすりゃsvnなんて、できたものをアップするだけの 単なる中央サーバーにしておける。古くても全然問題なし。 >>240 全くその通りで、git に移行出来ればベストなんだが、 うちのプロジェクトの連中はSVN1.6に何の疑問も感じない管理職だの外注さんだのから 構成されていて、git 入れるとか言ったらそれだけでひと悶着ありそうな気配なので、 SVN以外は無理な感じ。 >>241 違う違う。自分一人でgit使えばいいの。 ローカルだけで。 自分だけはgitで楽をする。 他の人は成長しないままw 今更人に聞けない。 「ぎっちょ」って呼んで良いんだよな まわりが徐々に移行しているときに同じようにやっておかないと いつの間にか直接移行できなくなるほどバージョンに差ができていたりするよなw >>242 何という裏ワザ >>245 そう思いますよ。駄目なプロジェクトってずっと同じもの使ったりするんで 何とかして欲しいです。 >>247 dump load しなくても大丈夫なのかな、、 >>248 ? > There is no need to dump and reload your repositories. Subversion 1.7 servers can read and write to repositories created by earlier versions. > To upgrade an existing server installation, just install the newest libraries and binaries on top of the older ones. 先月だかまで1.6だたけどbackportsに1.8来てたからうpぐれしたわ 俺なんかなー レポジトリを1.7にした一週間後くらいに1.8が出て涙目で1.8に上げたわ 互換性を調べられないような人にまで 駄目と言われるプロジェクトか よっぽど駄目なんだろうな 「gitに移行するのがベストだから移行したい」ってこの人が言い出したら、俺だって反対する。 お願いだから何もしないでくれの裏返しで。 >>255 gitに移行すること自体は別に反対じゃない。 ただ、検証能力の低い人が移行したいと言い出すことについては反対。 >>256 なんで条件つけるんだよw 検証能力が低い人が決めたことは 全部反対ってことで、git関係ないじゃないか。 >>257 そうだよ。git関係ないよ。そう書いたつもりだけど。 なぜgitがベストだと判断したか、説得させる力がないのを、 あの人は疑問も持たず使ってるだとか、だめなプロジェクトを何とかしてほしいだとかいう人だよ? アップグレードに関する知識も、答えが載ってるページを貼ったにもかかわらず理解できなかった人だよ? そういう流れがあった上で、>>254 では「この人」が言い出したらとなってるんだ。 ちなみに、業務でやってるわけじゃないのならこういう言い方はしなかったと思うよ。 ただただ、業務上ソース管理の管理者的な立場にいるような人があのザマだったからで。 その前にさ、subversionが別とベストだと 判断した理由がなければ、比較できないよね? どうせsubversionは惰性で使ってるだけなんだろ? gitに理由を求めるのであれば、 subversionに理由を求めてもいいはずだ。 >>260 向きを変えてもいいよ。 現状gitを使っていて、管理者としての知識が欠けている人が、 svnのほうが便利らしいからsvnにしたいんですって言い出したらどうする? よしんば知識が欠けていなかったとしても、なぜ?って話をするのが通常でしょ? >>261 あぁ、管理者が馬鹿なのか。 なら馬鹿な管理者よりも 有名な人が使っている人が 選んでいるものを使いますね。 頭が悪くてスレ違いだってことがわかんないんでしょうか で git flow がーとか騒いでた奴は、結局 >>233 で終わりだったの? あんなに元気だったのにな。 突然静かになると逆に心配ですらある 質問させて下さい。 svn logで削除されてしまったファイルの履歴を見ることは可能ですか? 最新版で削除されている場合、エラーになってしまいます pathではなくURL指定にしてみたり、-rでまだ削除されていないrevisionを指定してみたりしましたが、ダメでした なにか、方法があれば教えてください よろしくお願いいたします >>270 URL後に@revで出来ました! ありがとうございます!! でも、そもそもrevいくつで消されたのかわからないと、この方法も厳しいですね やっぱり、消されていない上位のフォルダ取ってフィルタとかかっこ悪い方法しかないですかね いずれにせよ、ありがとうございました すみません。 情報いただきたいのですが、ユーザが二人いて、両者が同じバージョンの同じファイルをupdateしたとします。 そのうち片方がdelete、commitを行いファイルをサーバから削除したとします。 その状態でもう片方がそのファイルを編集して、その後、サーバでファイルが削除されていることに気がついてupdateをしたら何が起こりますか? ファイルがワーキングコピーから削除されることを期待しているのですが、うまく動きません。 コンフリクトの解決でなにか必要なオプションがあるのですか? >>272 > updateをしたら何が起こりますか? コンフリクトするんじゃね? > ファイルがワーキングコピーから削除されることを期待している 編集中の内容がなくなるような動作はしないはず。 > うまく動きません。 なんでどうなるのか書かないんだ? 普通の板ならいざ知らず、ここはム板なんだよ。 >>272 コンフリクトが起こる コンフリクトを解決するのはユーザの仕事 コンフリクトを起こしてしまった人間が、自分の仕事を破棄しても良いと判断するなら、revertすれば良いのでは? >>273 お前…偉いな 他意は無いよ 素直にそう思った > なんでどうなるのか書かないんだ? > 普通の板ならいざ知らず、ここはム板なんだよ。 これ重要だよな どうなってるかぐらい読めるだろ。 > ファイルがワーキングコピーから削除されることを期待しているのですが、うまく動きません。 うまく動かない = 期待通りの動作をしない = ワーキングコピーに残ったままになる > コンフリクトの解決でなにか必要なオプションがあるのですか? コンフリクトが発生している アホはうまくいかない場合に高い確率で予想もつかない操作をしている。 したがって現在の状況は激しく不明。適切なアドバイスは不可能。 俺らの常識を超えるのはよくあることだが 予想もつかないと認めてしまうともはや転職するしかない >>272 もう答えが出てるも同然なんだけど、親切ぶって書いておくと >コンフリクトの解決でなにか必要なオプションがあるのですか? コンフリクトの解決として、ローカルにあるファイルを生かすのか、削除するのかは ユーザーが選ぶ必要がある。 その選択がすでに決まっている(今回の場合はリポジトリ優先)なら update / resolve のオプションで --accept theirs-conflict か theirs-full が使えるかもしれない。 >>279 > 予想もつかないと認めてしまうともはや転職するしかない 自社製品(ソフトウェア)のサポートしたことあるけど、色々ヒアリングしたら結局インストールしてないとかはまだかわいいもので、全く関係のない他社製品のクレームいれてきて、すぐ直せとか、予測なんてとても無理 w 予想できる範囲の予想を放棄することについて言ってんでしょ。 理解力のなさが致命的じゃないか。そんなのでサポートできるのかどうか疑問だが、 過去形だからもうサポートはしてないんだよね。賢明だと思う。 >>282 なんかアホが絡んできたぞ まあ、これぐらいは予想できてたけど w 予測でサポートは愚の骨頂 状況をヒアリングする → サポートデータベースを引き、それに合ったアクションをとる システム化されたユーザーサポートには予測など入る余地はない ヒアリングせず他社製品のクレームだと予想してそれへの対応するのか? 死んだ方が良いぞ、お前。 お前のレスは読み飛ばしたからお前に対するレスじゃないんだ 残念ながら「事例」が出てきてるのは、お前が読み飛ばしたはずのオレのレスなんだ。 頭悪いぞ、お前。 >>283 書いてからしばらくたって ID変えてまで >>284 書くから別人かと思った 〜を聞いてみて〜という返事が返って来たら、他社製品の○○のせいだからお引取り願う なんて事例は結構あるかと思ったけど >>291 > 〜を聞いてみて〜という返事が返って来たら、他社製品の○○のせいだからお引取り願う そんなやわな例ならわざわざ書かないよ >>281 で書いたのは、うちの製品が全く関係ない例 具体的な製品名は出せないけど、例えばプリンタで印刷がおかしいというクレーム受けたから、色々ヒアリングしたら最終的に他社の製品だったというオチ 最初に型番ぐらい確認しろよ、とか言うだろうけどそんなものにまともに答えるような奴はそもそもこんなアホなクレームつけてこない 下手に無理やり型番聞こうとすると、そんなもんはどうでもいいからすぐ来て直せとかよけいに激昂して泥沼に入るだけ マニュアル対応しかできないからこんな会話になるんだろw 次にお前はこう言う 「俺が予測出来ないのでは無い。相手がアスペなんだ」 「はっ?!」 Subversionが停滞しているのではない。 gitが前進しているのである。 >>293 あなたの経験はどうでもいいんだけど、今回の話の基点になってるのは >>272 に対する >>277 だよね。 >>272 を読んで適切なアドバイスが不可能な人は、今のところ >>277 以外にいない。 >>298 あなたは >>272 なの? 適切なアドバイスかどうかは >>272 でないとわからない >>280 みたいな具体的なコマンドラインオプションを知りたかったのかもしれないし、>>297 が正しいなら git へ go が適切だったかもしれない あと、アドバイスができない奴でレスしない奴がいないことをどうやって確認したの? >>299 >>272 じゃないよ。ところで>>299 は>>293 なの? > >>280 みたいな具体的なコマンドラインオプションを知りたかったのかもしれないし、 ちがうね。期待していた動作に近い挙動をさせる方法を知りたかっただろう。 > >>297 が正しいなら git へ go が適切だったかもしれない まさかw >>300 > ちがうね。 本人でもないのに断言 アホ過ぎ こんなものは停滞し続けてもらわないと、 フォーマットが変わったから1からコミットし直しなんて もう嫌だw >>298 >>>272 を読んで適切なアドバイスが不可能な人は、今のところ >>277 以外にいない。 お前が適切なアドバイスとやらをしてみろ。ワ 何で伸びてんのかと思ったら理解力がないものとそれを無駄にあおり続けるものの応酬だった。 2chでは良くあることだけどこのスレでそうなるとはね。 2ちゃん中毒症状の進行 1.物騒な掲示板だなと印象を持つ 2.全部自演だと思い込む 3.自分で自演を始める 4.自分で自演してるのに他人の自演を叩く 5.自演じゃないと言い張る 6.他人のレスと自分のレスの区別が付かなくなる >>306 6番って、 他人へのレスと自分へのレスって事? それとも、 自分が書いたレスを(自演だけど)本当に他人が書いたと思ってしまうって事? 前者は良くいるけど、後者は怖いよね… なんで伸びてるのかと思ったら、>>305 がヨタ話始めただけだった。 2chでは良くあることだけどこのスレでそうなるとはね。 TortoiseSVNの「未コミット項目が残ったらコミットダイアログを再度開く」のオプションって なんで無くなったのか分かる人いない? 一部だけコミットしてまたコミットダイアログ開くの面倒くさいよ svn logでそのレビジョンで変更があったファイル、フォルダを見れると思います その際、削除されたフォルダの下の情報も取得するオプションはありますか? たとえば A(Folder) - B(Folder) -- C(Folder) -- d.txt(File) という階層があって、Bを削除された場合、そのレビジョンではBがdeletedだったと表示されると思うのですが、C,d.txtも表示させたいです ご存知の方がいらっしゃいましたら、教えてください よろしくお願いいたします Subversion 1.7 & TortoiseSVN 1.7 系の環境を Subversion 1.8 & TortoiseSVN 1.8.9 に移行して、気が付いたんだが、 コミット済みのファイルをTortoiseSVN でrename して再度コミットするとエラーになる。 同じ操作をしても1.7系だとコミット出来たのに、1.8系だとエラーになる。 回避するには、コミット済みのファイルをTortoiseSVN でrename した場合は、 一つ上のフォルダに移動して、そこでコミットすると、コミット出来る。 これって仕様なんだろうけど、使いにくくないか? >>312 Subversion の rename は copy&delete の2つの操作の組み合わせとしてコミットされる。 1.7 までは rename で発生した copy だけをコミットすることができていたが、それはたいていの場合 間違い。(リポジトリ上にリネーム前のファイルと後のファイルが両方存在する状態になる) そういう間違いを防ぐため 1.8 でこれをエラーとするようにした。とても助かる。 svn.exeで色々とオプション試してみたが、無理だと思う svn.exeではなく、subversionのDLL直叩きなら、なんか方法あるかもしれんが >>318 >>316 >>314 本当に出来るなら、やり方教えて欲しい >>313 rename した後に同じフォルダーでcommit するとエラーで 上のフォルダーに移動してcommit するとOKってのが謎の仕様なんですけど、、 >>321 ちょっと意地になって色々ためしたけど、無理っぽい あと、質問なんだが、 >subversionのDLL直叩き これどういう意味? すみません、何方かアドバイスをお願いします メンバの一人が間違って登録されてるファイルを全部消すと言うミスをしてしまいました このリビジョン(仮にrev100)における操作を完全に無かったことにしてrev99=HEADの状態 にするにはどうすればよいのでしょうか? >>325 ↓こんな感じ?試してないけど。 svn cp -r99 ^/ ^/ 325です 履歴にも残さずに完全にロールバックしたかったので逆mergeやcopyと言う方法 は選べませんでした 今年はsubversionの終わりが加速した感じだった。 dev-MLの投稿数は毎月200通以下が普通になったし、 1.9は全然収束しない。 しかも、1.9は機能を削りまくってる。 まともなrenameトラッキングは当分先みたいだし。 うちの会社もあちこちでgitに移行してるし。 このスレーってもうSubversion単体スレーである必要が全く完全に無いだろ バージョン管理ツールスレーとかでいいんじゃないの? >330 も言うようにどんどんgitへの移行も進んでるし、今更subversionで語る ようなことも無いだろ Gitだと、ロックして編集とかEXCELの管理とか やりにくいんじゃなかったっけ? そういうのはSubversionが向いてる もっともエクセル単体ならエクセル自身でバージョン管理した方がいいけど ロックはともかくExcelにSubversionの利点なんてあったっけ? バイナリ差分があまり効かないからgitと大して変わらないような subversionは名前が悪かったと思う。何しろ「サブ」だし。 せめてmainversionとかの名前ならもうちょっとユーザが増えた気がする あと、gitなら「じっと」「ぎっと」「ぎと」って感じで呼ばれることが多いけど subversionは「さぶ」「さぶん」「さぶば」で通用する事はあまり無くて大体が 「えすぶいえぬ」って呼ばれるのも痛い 確かにsub-versionだと思っているgitは多いかもね。 >>336 ロックが取れる事がexcel(というかバイナリ)を使う上での最大のメリットってことでしょ。 一人で使う分には、確かにgitでも変わらんけど。 >>335 エクセル自身のバージョン管理はオススメできぬ。 ファイルが肥大して大変だし、壊れた時のリスクが高い。 バイナリ差分があまり効かないというが、がんばればしっかり差分取れるものではある。 ただ面倒なんだよなopenxml OfficeはOffice自身でバージョン管理できるし、本格的にビジネスで使うならSharepointがある ソースコードと一緒に管理したいならSvnでもいいけど 質問させて下さい。 あるファイルをaddしてcommit、編集してcommit、deleteしてcommitしたとします。 -> この履歴を@とします。 その後、同じ名前のファイルをaddしてcommitしたとします。 -> この履歴をAとします。 その状態で、その名前に対し、svn logをすると、Aの分の履歴しか取得できません。 svn logに渡すpathに@バージョン番号をつけると@の履歴が取れますが、逆にAの履歴が取れません。 おそらく、subversionの頭が良くて、同じpathでもdeleteされた前と後では別物として扱っているのだと思います。 どうにかして、svn logでpathを指定した場合、途中でdeleteが行われ同じファイル名のファイルがaddされていたも、そのpathの全ての履歴を表示する方法は無いでしょうか? よろしくお願いいたします。 logは履歴を見るもんなんだが。 履歴がつながってないから全く別のファイル。 どうしてもそれしたければ delete直前のリビジョンからコピーしてきて新しい内容で上書き&コミット。 >>346 svn log -v --search path trunk AAAA BBBB CCCC DDDD ↓ trunk DDDD EEEE (新規に追加) AAAA BBBB CCCC TortoiseSVNで上のような移動をしたいのだけど、 これをやったあとにEEEEフォルダのログを見たとき、 AAAAやBBBBなどのこれまでのログも出てくるようにできますか? 1) trunk AAAA BBBB CCCC DDDD EEEE 追加 2) trunk DDDD EEEE AAAA 移動 BBBB 移動 CCCC 移動 手順踏めば大丈夫 >>350 その方法でやってみたのですが、EEEEフォルダのログには、 EEEEフォルダ追加からのログしか出てこないのです。 trunkフォルダのログや、AAAAフォルダのログには、 EEEEフォルダ追加以前のものもすべて出てきます。 リポジトリブラウザ上でテストしたので、 操作ごとにコミットされているかと思います。 ログは以下のようになっています。 リビジョン2 /trunk/AAAA 追加 リビジョン3 /trunk/BBBB 追加 リビジョン4 /trunk/CCCC 追加 リビジョン5 /trunk/DDDD 追加 リビジョン6 /trunk/EEEE 追加 リビジョン7 /trunk/AAAA 削除 /trunk/BBBB 削除 /trunk/CCCC 削除 /trunk/EEEE AAAA 追加 (コピー元 /trunk/AAAA 6) /trunk/EEEE BBBB 追加 (コピー元 /trunk/BBBB 6) /trunk/EEEE CCCC 追加 (コピー元 /trunk/CCCC 6) だってそりゃEEEEにはリビジョン6より前の歴史なんてないじゃん。 とか。 俺もこの場合はログが出ないものだと思っていたが、出せるなら知りたい >>354-355 フォルダに対するログの表示は、 「フォルダ以下にあるすべてのアイテムのログ」ではなく、 「フォルダそのもののログ」ということなんですか。 フォルダを移動しないうちは同じように見えるけど、 移動してしまうと表示の違いが出てくると。 前者のほうがしっくり来るのですが、こういう表示はできないのですかね。 2014年2Qにリリース予定だった1.9の進捗状況はいかがでしょうか。 どなたか詳しい方、コメントいただきたく。もうワケが分からない… windows7のPCをSubversionのサーバーとして使っています。 半年くらい前にpost-commitフックで、cmailを使ってコミット内容をメール通知するようにしました。 先日、サーバーを再起動した途端にコミット完了するのが異様に遅くなり、原因を調べてみるとcmailでメール送信する所で2分くらいダンマリしている事がわかりました。(この間、cmailプロセスのCPU使用率は0%表示。最終的にはメール送信成功する) 同じメール内容をサーバーのコマンドプロンプトから送信すると、一瞬で完了します。 どうアプローチしていいのか分からず完全にお手上げ状態です。誰かお助け下さい。 cmailでのメール送信だけやってみて様子を見るとか。 なんとなく名前解決関連な気もするけどわからん。 runasでhookを実行するアカウントで実行したら、なにか差が出るかも。 ただ、自分も名前解決のタイムアウト待ちで遅くなってる気がする。 そこまでジャンクXVIを馬鹿にされたのが悔しいんだったらせめてちょっとは 綺麗にしとけよ・・・ cmailでのメール送信が遅い件ですが、Subversion鯖に入っているノートン先生が原因のようです ノートン先生が動いているときだけ、smtp鯖との通信確立にキッカリ30s、通信切断に30sの待ちが発生していました 以上、ご報告まで svn1.8クライアントで少し大きめ(5Gくらい?)の作業コピーを更新しようとしたらE175012がでるんだけど、 これって鯖管にsvn1.8サーバのSVNAllowBulkUpdatesにPreferを設定してもらうように依頼したら直る? プロトコルどれ使ってるのかわかんないけど、そこのタイムアウト値を大きくするのはだめかな。 おk。ぐぐった。 MaxKeepAliveRequests 1000もつけるといいのかな。 依頼してみる。 いや、そういう話ではないけど、鯖管に状況を説明して対応してもらえば済むように思う。 ロードマップ更新されているね。 subversion.apache.org/roadmap.html dev MLも2月は久しぶりに400通越えだし、少し復活ぎみかな? おいおい、新機能がほとんど先送りになって、1.9の目玉が何も無いじゃないか。 ローカルコミットは2017年以降かよ・・・orz 初めてWINDOWSの環境でリポロジを簡易NAS(ルータにUSBでマウントFAT )に設定しました。 xドライブはネットワークドライブです。使い始めて数回コミットしたらエラーが出たんでベリファイしてみるとエラーが出るんで リカバーしてみてRecovery completed.になっても治りません。 使い始めたばかりなんでリポロジを作り直してみても同じ現象になります。 svn, version 1.8.11 (r1643975) ネットワークドライブでは問題がるんでしょうか。 ファイル 'Z:\SVN_試験\repo\db\revs\0\3' 中の長さの行を読めません C:\Documents and Settings\nagashima>SVN_試験admin recover Z:\SVN_試験\repo Repository lock acquired. Please wait; recovering the repository may take some time... Recovery completed. The latest repos revision is 16. C:\Documents and Settings\nagashima>svnadmin verify Z:\SVN_試験\repo * Verifying repository metadata ... svnadmin: E200002: Can't read length line in file 'Z:\SVN_試験repo\db\revs\0\3' C:\>svnadmin verify Z:\SVN_試験\repo * Verifying repository metadata ... svnadmin: E200002: Can't read length line in file 'Z:\SVN_試験\repo\db\revs\0\3' C:\>svnadmin recover Z:\SVN_試験\repo Repository lock acquired. Please wait; recovering the repository may take some time... Recovery completed. The latest repos revision is 16. C:\>svnadmin verify Z:\SVN_試験\repo * Verifying repository metadata ... svnadmin: E200002: Can't read length line in file 'Z:\SVN_試験\repo\db\revs\0\3' > ネットワークドライブでは問題がるんでしょうか。 ここを心配するのであれば、なぜローカルドライブでテストしないのか。 あとRepositoryですよ。 Javaの実装ってことで、svnkitを手に入れようと思ったんだけど svnkit.comが何か変。 ドメインが期限切れになってるっぽい? 本家はどこになるんだろう? Domain names in the .com and .net domains can now be registered with many different competing registrars. Go to http://www.internic.net for detailed information. Domain Name: SVNKIT.COM Registrar: REGIONAL NETWORK INFORMATION CENTER, JSC DBA RU-CENTER Sponsoring Registrar IANA ID: 463 Whois Server: whois.nic.ru Referral URL: http://www.nic.ru Name Server: NS.MASTERHOST.RU Name Server: NS1.MASTERHOST.RU Name Server: NS2.MASTERHOST.RU Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited Updated Date: 31-oct-2014 Creation Date: 08-nov-2006 Expiration Date: 08-nov-2015 切れてないようだけど。 今見たらちゃんとページ表示されるね。 >>374 のタイミングだとsvnkit.comのトップページからdocumentからdownloadページまで全部レジストラの広告ページっぽかったんだよ。 総入れ替えメンテでもしてたのかね? 掃除のおばちゃんが期限切れにするボタン押しちゃったんだよ、きっと アメリカ時間の3/31 に 1.8.13と1.7.20 が出る模様。(1.8.12はパスらしい) 日本だと4/1に入手可能か、、 >>383 ttp://subversion.apache.org/docs/release-notes/1.9.html ・ FSFS (subversion の内部DB) のフォーマットが7 になった(1.8 はformat 6)。 FSFS format 7 への移行は a) バイナリを入れ替えるだけ b) バイナリ入れ替え+svnadmin upgrade c) dump + 1.9 でDB作成+load d) dump + 1.9 でDB作成+load +svnadmin pack のそれぞれの移行方法があるけど、Service qualityに差があるよ ・FSXっていう新しいDBも使えるけど、実験的な段階。 ・コマンドがいくつか新しくなって、バグも直ったよ。 って感じかな。 こないだまでいた、プロジェクトではRedMine 1.x と付属(?)のSVN 1.6 を使って、 履歴が12000を超えていた、、、 全部ダンプしてsubversion 1.9 のDBにload してやりたいわ。 >>384 > ttp://subversion.apache.org/docs/release-notes/1.9.html > ?Full checksum coverage of all revision data, including meta data and structural information. で全データのチェックサムで保存するようにして、 次回 1.10 でrename トラッキングを実現しようという魂胆かな? 2015-05-11 ? Apache Subversion 1.9.0-rc1 Released ¶ 基本的なことですが、AIX版のsubversionクライアントってありますか?? ご存じの方がいれば教えていただけませんか? 基本的なことですか。makeすればよろしいのではないでしょうか。xl cでも何とかなるでしょう。 そういえば昔、gccをインストールさせてくれってお願いしたけど、断られた思い出 2015-06-09 ? Apache Subversion 1.9.0-rc2 Released Subversion 1.9.0 Subversion 1.8.14 Subversion 1.7.21 の3つが近いうちにリリースされそう。 バージョン多すぎ・更新間隔早すぎでついていけない 安定版と開発版の2つに減らして、更新は年1回にしてくれ 1.9 の次は 1.10、1.11、1.12・・・ そうこうしているうちに subversion は時代遅れとなり消滅 2.0 は出ない Road Mapのページも更新されたので、 p://subversion.apache.org/roadmap.html 1.9が出るまで秒読み状態かな。 きたか…!! ^‐‐^ ( ゚ д ゚ ) ガタッ / ヾ _L| / ̄ ̄ ̄/_ \ TortoiseSVN 1.9.0/1.8.12 リリース告知でたよ メーリングリストに日本語で質問する三菱電機さんのつわもの現れた logがおかしいみたいだけどよくわからんかった > logがおかしいみたいだけどよくわからんかった 見たけど、俺も他に言いようがないな 良くわからんってのは、ツワモノ三菱電機さんの話し? TortoiseSVNを使用しているのですが、質問させてください。 第三者のオンラインレポジトリから更新のある度にソースを拝借しつつ、 それを元に自分で改造したものをローカルレポジトリでバージョン管理したいと考えています。 このような場合、都度オンラインとローカルとで「切り替え」を行う運用でよいのでしょうか? もっとスマートな運用方法があれば、ご教示いただければと思います。 >>409 Subversionの開発に参加し、難航しているローカルコミット機能の実装に協力して2.0の新機能に盛り込ませる。 リボジトリが中央に一つという前提の設計が仇となって使いづらいよねえ Gitの唯一にして最大の弱点(コミットのコメントにShift_JISが使えない)さえ 改善されれば、Subversionにこだわる必要もないんだが >>412 git config i18n.commitencoding Shift_JIS レスいただき、ありがとうございます。 これを機に、gitに入門したいと思います。 >>411 とても素敵な解決策ですが、実現し得るスペックが今の私にはないので、今回は見送らせてください。すみません。 普通にローカルコミット相当のブランチ作るんじゃダメなの? それが手間だってことなら、そうですかとしか言えないけど。 svnではexternal使えばいいんじゃないの? 欲しいのは所謂ベンダーブランチなんでしょ? gitではremoteで他所のリポジトリを参照できる。 pullはするがpushはしないという運用でも良いかも知れんけど結局マージすることに変わりなし。 Subversionが使えるSaaSの定番ってある? 質問ですが Q1. svnで削除され、かつheadまでの間マージ等で復活してもいないファイルをリポジトリから完全削除する簡単なやり方ってないでしょうか。 svnadmin dump old_repo | svndumpfilter exclude --pattern "*.csv" | svnadmin load new_repo でとりあえず"*.csv"にマッチするやつだけはまとめて消せましたが、 これをいちいち人手で削除対象を指定するのではなく、「svnで削除され、かつheadまでの間マージ等で復活してもいないファイル」という条件で消したい。 Q2. Rev.1〜24を取り出せなくして(checkoutもupdateもできなくして)、かつリビジョン番号は保ちたいのですが、なんか方法ありませんか。 svnadmin dump -25:head | svn load new_repoとしたら一応取り出せなくすることはできたのですが、 勝手にリポジトリ番号が1始まりになってしまいまつ… すみませんが、質問です。 あるファイルの履歴が、特定のコミットから前はたどれなくなっています。 svn blame してもそのコミットより前は取得できません。 しかしそれはそのコミットで新規作成されたものではなく、それ以前にも 存在したファイルのようなのです。理由は ・その特定のコミットがファイル全体でなくごく一部しか登録していない。 ・そのディレクトリの以前のコミットを見ると、そのファイルを変更するコミットがいくつも見つかる。 ということで、質問です。 ・これはどういう原因が考えられますか? ・ある特定の行がどのコミットで作成されたか、その特定のコミットより前に さかのぼって調べるにはどうしたら良いでしょうか? >>421 正常だった頃のバックアップをリストアしたら? >>419 2年毎にバージョンアップだから1.10は2017年じゃね? すみません、svn merge で、 trunk と branch 間じゃなくて、 trunk から派生した機能branch 同士でマージすることってできますか? またそれに関して何か参考資料があったら教えていただけないでしょうか? どうも svn:mergeinfo のなかった頃の記事しか見つからなくて。 >>426 できると思うけど。 俺の普段使っている構成はtrunk/brunch構成じゃなくて、brunchだけみたいな構成だけど、普通にマージしてるよ。 ってか、やってみたほうが早いぞ。 原理的に不可能なわけないんだから。 >>427 426 です。 確かに trunk に対して sync merge の済んでいる branch 同士なら、 原理的には安全に merge できそうですね。 trunk からの派生時期が違ったとしても。 時間に余裕ができたら実際に試してみます。ありがとうございました。 質問です。 ある機能ブランチ func1 の開発で trunk をときどき sync merge していたのですが、 どうもこれをよく理解せずにやった人がいたらしく svn mergeinfo --show-revs eligible ^/trunk/ で何も出ないにも関わらず、 svn diff ^/trunk ^/branches/func1 だとtrunkの更新分がいろいろ func1 に取り込まれていないことが判明しました。 この修正はどうやったらいいのでしょう? 例えばfunc1で更新されていないファイルは、trunkからコピーして そのままコミットしたいところですが、今度は func1 を trunk に マージするとき、そのコミットがtrunk に反映されてしまいそうです。 ・修正コミットの番号をわかるようにしておく ・func1 を trunk にマージするとき、その修正コミットだけを除外する ・マージコミット時、svn:mergeinfo を編集して、その修正コミットもマージ済みだということにする。 とりあえずこんな手順を考えていますが、もっと適切な方法はあるでしょうか? svnにはいくつも欠点があるが、中でもマージが1コミットになってしまうのが 自分はつらい。 機能ブランチ内で1コミット1サブ機能でキレイなコミット歴を残しても trunkにマージされたら全部まとめて1コミット。 当時の履歴を追いかけるには、もう消したブランチを追いかけなきゃならない。 Gitならmasterにすべてのコミットが残ってるのに。 バージョン管理システムのメリットよりも 使い方を覚える労力と、操作ミスでリボジトリをメチャメチャに してしまうデメリットの方が大きいわ 俺はもうフォルダコピーで行くぞ どうやったらリポジトリをめちゃめちゃにできるんだよ? 助けてください!! TortoriseSVNを使っています。 新プロジェクト(まだSVNに登録していません。)をいきなり、エクスプローラからソリューションを右クリックして、 コミットを実行してしまいました。エラーは出ませんでした。 でも、おかしいと思い、そのソリューションを開いたら、「.csprojが見つかりません。」みたいなメッセージが出ました。 その後、もう一度、Visual Studioを閉じて、再度上げ、問題のソリューションを 開いたら、本日作業した部分が消えていました。 どうしたら最新を戻せるでしょうか? よろしくご指導ご支援のほどよろしくお願い申し上げます。 >>434 C# のスレで聞いたほうがいいかもしれない。 たいていのプログラマはsvnを知ってるけど、 C#を知っている人は限られるから。つうか自分も知らない。 あとここ過疎スレだし。 >>434 コミットしたものがリポジトリから消えたってこと? 何言ってんのかよくわからん >>431 --use-merge-history >>434 リポジトリから開こうとしたの?それとも右クリックしてコミットしたフォルダの? ああ、後woking dirでもないのに右クリックからコミットは無理かと。 右クリックしてRepo browser選んでみてはどうでしょか。 そもそもコミット時は必ずログ入カのダイアログが出るから いきなりコミットしてしまいました の時点で >>432 と同類のネタでしょ ID:V0iG8LAX は結局何がしたかったんだろう… Subversion も git の良いところをどんどん取り込んでいけば、 とりあえず Subversion を選んどけば良いって状況になるはず >>442 とりあえず、ローカルコミットがあればいいや Gitの良い所を取り込むのは今までもやってきてるけど、今後はもう ほとんどないと思う。今までのペースを見ても 2008年 1.5 マージトラッキング導入。マージが自動に。 2011年 1.7 .svnディレクトリをワーキングコピーのルートだけに作成。 あとは svn merge --reintegrate が生まれて、自動化されて廃止されたり svn mergeinfoコマンドができたり、そんぐらいしかない。 .svnだか.svnreposだかにリポジトリ作れればカジュアル用途で復活できるのにな > .svnディレクトリをワーキングコピーのルートだけに作成。 これは、途中のディレクトリの.svnだけを他の場所に持って行ってupdate ということができなくなってちょっと不満だった (めったにしないからいいんだけど) >>447 > 途中のディレクトリの.svnだけを他の場所に持って行ってupdate ということ 普通にリポジトリブラウザで途中のディレクトリを他の場所にチェックアウトすればいいだじゃないの? いや…さすがにチェックアウト方法を知らないってことはないよ… 簡単にワーキングディレクトリをコピーする方法としてそれを使ってたって話 >>449 そうすることのメリットは特にないよねってだけじゃないかな。 ネットワークが致命的に遅い環境ならわからんでもないけど。 他陣営に FUD しないと生きていけない病か何かなのかな? 指定のブランチだけローカルにリポジトリ作って ローカルコミットできる機能がほしい >>453 ローカルでgitやhg使えば良いのでは? ソース俺。 ウチはgitをインストールするとPCの調子が悪くなる gitをアンインストールすれば治る だからまだgitに移行できてない >>455 > おまえら、svk亡き後はgit-svnつかとる? 一時使ってたけどいまいちスキルがなくて挫折した ローカルコミットはうらやましいけどまあ SVN でだいたい間に合ってる SVNのマージってGitとかの新しめのVCSのマージと比べて制限ある? GitみたいフローをそのままSVNでやってもOKかな? >>460 gitだと一瞬で終わる作業がsvnだと数十秒〜数分ぐらい かかるだけで同じことは出来るよ。 例えばrebaseだと5分ぐらいかかるかな。 ToroiseSVNの質問はここで良いでしょうか? 二つのサーバで、それぞれでsvnのリポジトリを運用しているのですが、一方のサブディレクトリから他方のサブディレクトリを参照したいケースがあり、対応方法を検討しています。 (ディスク容量の都合上、リポジトリは一方に寄せられません) 今考えているのはhttpd.confにredirectを入れる方法です。 Redirect permanent /repo_path1/subdir1 http://domain2/repo_path2/subdir2 この方法だと、ブラウザからであればsubdir1にアクセスするとリダイレクト先のURLにリダイレクトされ、subdir2配下のディレクトリにもアクセスできます。 しかし、ToroiseSVNからだとsubdir2の中身は参照できますが配下のファイル等にアクセスするとURLが以下のようになりアクセスできません。 期待:http://domain2/repo_path2/subdir2/fileA 実際:http://domain1/repo_path1/subdir2/fileA 二つのリポジトリはBasic認証でアクセス制限していますが、アカウントとパスワードは同じです。 上記の事象の解決方法をご存知の方いらっしゃいましたらご教示願います。 書き忘れてましたが、クライアント環境は ・Windows7 ・TortoiseSVN 1.9.3 Build 27038 32Bit ・Subversion 1.9.3 サーバ環境は、リダイレクト元が ・CentOS 5.5 ・Subversion 1.6.5-1 ・httpd 2.2.3-43 リダイレクト先が ・CentOS 5.5 ・Subversion 1.6.6-1 ・httpd 2.2.3-63 です。 >>463 新たなブランチ作って、そこに順番入れ替えながらマージしていくw >>464 そういうのはmod_proxyの出番じゃなかったっけ? >>467 情報ありがとうございます。mod_proxyについて調べてみることにします。 >>469 externals属性を試してみたところ、こちらの方が自分のやりたいことに適していました。 ありがとうございます。 > ディスク容量の都合上、リポジトリは一方に寄せられません すごい SubversionとGit両対応(クライアントとして)のサービスってGitHub以外ない? むしろsvn git hgに対応してないコードホスティングがあったら聞いてみたいくらい Git は初期から SVN からの移行を狙って SVNもどきモードを付けてた 今も動くかは知らん えっ、GitHubってSubversion使えるの??? GitHubはGitしか使えないもんだとばかり思ってた うちのPCは2台とも、Gitをインストールすると不調になるんで (C言語のコンパイルができなくなるなど、不可解な現象が) Subversion使えるとこ探してた べつにOSDNも構わないんだけど・・・ 今年に入ってからdev-MLへの投稿がかなり減ってる。 リポジトリの一部をチェックアウトできること、チェックアウトしたファイルのタイムスタンプを復元できること、この二つの利点がある限りSubversionもドキュメント管理ツールとして使うつもり。 >>487 コミットした日付じゃなくて、コミットした時点のファイルのタイムスタンプが復元されて欲しい。 Gitの断片的なチェックアウトもやろうと思えばできるようだけど、一端全部チェックアウトしてから不要なものを消すという手順は面倒だね。 メタデータが保存できるファイルフォーマットの文書を使えば良いのでは >>489 今どき svn 使ってる案件のドキュメントはMS-Officeに決まっとろーが。 >>490 じゃ、別にファイルのタイムスタンプがどうなろうが問題ないのでは? >>491 すまん、自分は488じゃないんだ。横から勝手にコメントしただけ。 紛らわしいことをしてしまった。 >>493 改めて確認してみたところ、コミット日時が反映されてました。 コミット時点のタイムスタンプというのは自分の勘違いだったようです。失礼しました。 派生元の違うbranchをどうにかしてmergeしたいと思ってたんだけど、 やっとわかった。2-url-mergeを使えば良いのか。 http://subversion.apache.org/docs/svn-merge.txt これで 3-way-mergeやrebaseのないsvnでも何とかやっていける。 ホントはさっさとGitに移行しなきゃならないんだけど、 その余裕がないんだよね…。 デザイナさんが svn のレポジトリに backup/yyyMMdd ってディレクトリ作ってて、 アホかタグ使えよと思ってたんだけど、過去の履歴をgrepしようとして真顔になった。 git grep が svn にはない。アホは自分でした。 なんとかしたくてググったら svn - なぜかレスの後半が無視されたんで再ポスト。 http://superuser.com/questions/793877/git-grep-equivalent-in-subversion これシェルスクリプトで書いてるんだけどうんと遅いし、 しかもこれファイルは指定できるけどディレクトリは指定できない。 もっとゴリゴリ書けばなんとかなるだろうけど、ますます遅くなるし、 そもそもsvn環境にこれ以上投資する気になれない。 お前らよく文句言わずにsvn使ってるな。 > デザイナさんが svn のレポジトリに backup/yyyMMdd ってディレクトリ作ってて、 > アホかタグ使えよと思ってたんだけど ちょっとわからん、タグってディレクトリだろ >>499 すまん、デザイナさんはtrunkの中にディレクトリを作ってたんだ。 アホな説明で申し訳ない。 >>500 そう、それ。よく察してくれた。svn copy じゃないから履歴も残らない。 勘弁してくれと思ったけど、過去バージョンの検索性という一点はすぐれていたというね。 ちなみにGitにはcopyコマンドはない(はず)。 ファイルの内容から履歴は自動追尾されるから、ローカルファイルのcp で構わない。 デザイナさんとsvnについてやり取りするたびに、人類にはsvnは難しすぎるんじゃないかと思う。 まあGitになったらなったでまた大変だろうけどね。 >>501 検索性が優れてるってタグでも同じじゃないの? >>502 それ、ローカルに ^/tags を全部 checkout なり export なりしてgrep しろって言ってる? たしかにそれやればなんとか検索できるな。 でも時間もローカルディスク容量もすごく食うし、しかもタグに記録しなかった履歴は検索できない。 Git なら git grep 一発だし、GitHub ならWebブラウザで検索フォームに入力するだけだ。 >>482 >>483 三月は遂に100通を割って、47通! 一気に減ったな 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、 BitTorrentがオープンソースで開発されています 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします https://twitter.com/Lyrise_al ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw The Covenant Project 概要 Covenantは、純粋P2Pのファイル共有ソフトです 目的 インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します 特徴 Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW) 接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です DHTにはKademlia + コネクションプールを使用します UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります) 検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません t ある文字列が過去のどのリビジョンに存在していたかを検索する場面が思いつかないんだけど、 そういう検索ができる環境が当たり前になれば、それなりの用途があるんだろうか。 grep through revisions と書かれてたからそう思ったんだけど、 git grep にそういうオプションが見当たらず。 githubの検索でも普通のgrepの結果っぽいのしか出てこないし。 >>506 なんかのライブラリとかを利用してて、試行錯誤で色んな関数呼んだりやめたりみたいなこと繰り返してから、 1年後あたりに、うろ覚えだけど、関数名だけは断片的に覚えてる、みたいな状況になったら必要じゃない? 個人的には割とよくあるけどなー >>509 関数が存在した時間かソースファイルの手がかりがあったら現行の機能だけでも逝ける、 まあ検索対象が大量にあって一括で探したい、とかいう場合はあれば便利かもだが なぁ、32bit windows 版の tortoise 1.9.4 って、中身のバージョンが、最新チェック用のバージョンと微妙に違くね? >>510 たとえば、特定のコミットだけに存在した文字列とかも探せる?その特定のコミットは大体しかわからない前提で。 あんまり使い込んでなくて質問してるんで、あったらすまん。 リポジトリブラウザを検索エンジンに食わせておけばよいのでは dev-MLへの投稿が激減していてヤバイ気がする。 tortoiseの完成度がピカイチなだけに残念だな。 hgもgitもGUIの使い勝手が悪すぎて、会社で提案しにくい。 みんなコマンドライン使えるわけじゃないからなー。 >>515 >みんなコマンドライン使えるわけじゃない 営業にも開発させてんのか? 誰か教えてください。 TortoiseSVNでブランチを作って切り替えて変更した後にトランクに切り替えると競合が発生します。 トランクとブランチは切り替えるだけでマージされてしまうものなのでしょうか? 切り替え前にコミットするとそうはならないみたいですが。 ブランチを切り替えるということはリポジトリの最新をローカルに書き戻すということ コミットしてない奴は上書きで消されても文句言えない マージしてくれるのは親切 >>524 なるほど。 そういう仕様だったんですね。 都度コミットするようにします。 ありがとうございました。 truncに切り替えるとコンフリクトが発生するのなら、branchをtruncにマージするときにコンフリクトが発生するのではないだろうか svn.osdn.jp落ちてる? またDDoS攻撃を受けてる模様 いきなり dev-MLに大量にメールが流れていて驚いた。 それから、1.9.5も近いうちに出そうだな。 ApacheとTortoiseSVN以外で、誰でも見られるリポジトリってないですか? >>530 フォルダの分け方とかコミットの仕方とかログの書き方とかの勉強のために、 オープンソースなどのリポジトリを覗いてみたいなと。 例えば、サクラエディタならここみたいな感じで。 http://svn.code.sf.net/p/sakura-editor/code >>535 この中にも多くあるんでしょうけど、 Subversionでアクセスできるものがどれなのかがよくわからないです。 "svn checkout https" と引用符で括ってぐぐればFreeBSDとかTracとかWebKitとかのドキュメントがひっかかるやん branchの切り替えについて質問さしてください branchを切り替える事で、通常なら「commit→trunkの更新」となるところが 「commit→branchへの更新」となる事は分かります ただ、 my_project └ trunk └ branches となっていてtrunkに対して新しいbrancを作って my_project └ trunk └ branches __└ 20160304 というブランチを作った場合、いちいち切り替えるのではなく myproject/branches/20160304 をcheckoutした上でそこを書き換えるのでは 駄目なんでしょうか?いまいち「切り替え」がどのような局面で 有効なのか良く分かりません >>538 > myproject/branches/20160304 をcheckoutした上でそこを書き換えるのでは > 駄目なんでしょうか? いいんじゃねーの? つか俺はそうしてる >>538 別に構わないけど、SVNとは関係ないところで注意点が増える。 パス構成が変わると、動かなくなる(設定変更が必要になる)ツールとかが無ければ問題ないんじゃね? 過去のリビジョンへ一部修正する手順が解りません 現在のリビジョン40 も修正したいリビジョン30の場合 こんな方法でやっいてますが多分違うと思います 正し手順を教えてください 1.TortoiseSVNでSVNコミット 2.TortoiseSVNでSVN更新 ここまででリビジョン40の退避 3.コマンドプロンプトを開いて del rm *.* ----リビジョン40を消す消さないと競合するから 4. svn update -r 30 5.エディタで目的の部分修正 6.TortoiseSVNでSVNコミット(変更の保存コメントに注意を書く) 4.コマンドプロンプトを開いて del rm *.* ----リビジョン41を消す消さないと競合するから 7.svn update -r 40 ---元の状態に戻す Tortoise使ってるなら、ログで戻したいリビジョンを選択して 「このリビジョンに戻す」で作業コピーがr30に変更した状態になるよ >>99 > 共有リポジトリ ん? 共有フォルダに作ったリポジトリ? よく分かんないけど、何故、共有フォルダに作るの? メリットは? デメリットは? なんでそんな前のにレスつけてんの・・・ ちょっと、この人こわい・・・ り、リポジトリはローカルに作ったらいいんですか? (震え声) 2017年に1.10出るかな? 1.9を使ってる人もかなり少ないと思うんだが、、 「Apache Subversion 1.9.6」が公開 2017年7月7日16:20 末岡洋子 https://mag.osdn.jp/17/07/07/162000 中央集権型ってだけで選択されない世の中になっちゃったからなー。 リテラシー低い者が集うところには 集中型が丁度いいんだがな〜 >>562 リテラシーって言うより、単なる慣れってことかなと思うようになった。 svn知らない奴に最初っからgit叩きこんだら、そこそこ使うようなってる。 こうなると、新規プロジェクトで敢えてsvnって選択はしづらいな。 >>565 今は、1.10.0-alpha3 がテスト中。 ただ、1.10 の正式版が出ると、1.8系が更新されなくなるから、痛し痒しだな。 質問です。 あるファイルをリポジトリに登録後、チェックアウトしてみたところ登録前後でMD5の値が異なっていました。 試しに登録元ファイルをチェックアウトしたファイルに上書きし、MD5を確認するとチェックアウト時の値と異なる(登録元ファイルのMD5の値と一致する)のですが、差分有りになりません。 そのため、コミットしようとしても更新対象なしとなりコミットできません。 登録前後でMD5の値が異なると管理上不都合なのですが、なんとかならないでしょうか? 環境は以下の通りです。 クライアント ・Windows7 ・TortoiseSVN 1.9.7 サーバ ・OS不明 ・Subversion 1.6.5 自己解決しました。 Windowsを再起動してリトライしたところ、正常に差分として扱われるようになりました。 またコミット後チェックアウトし直したところ、こちらも登録前のファイルのMD5と一致しました。 原因不明ですが、とりあえず対処方法がわかりましたので質問は取り下げます。 お騒がせしました。 http://subversion.apache.org/roadmap.html によると、1.10.0は仮目標が今年の1月or2月の模様。 開発項目を減らしたにも関わらず、なかなか進捗しないな。 大規模フリーソフト開発でSubversion使ってるところまだあったっけ? トラフィックの関係でインターネット上にリポジトリ置く場合は分散型が多いでしょ 新機能実装はもういいから 新OSへの対応は末永く続けてほしい いや、なにとぞローカルコミットだけはサポートしてくれ ローカル相当部分にはgitでも使って、ユーザー運用で対応するようにしたほうがいんじゃね? ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の 両院で、改憲議員が3分の2を超えております。 『憲法改正国民投票法』、でググってみてください。国会の発議は すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ >>577 CVS,SVNとか普通に主流だったし だったらなんで最初から分散型じゃなかった? 主流が切り替わったんだろ 2018-02-28 ? Apache Subversion 1.10.0-rc1 Released >>477 ホスティングサービスってどこがいいの? ググってみたが多すぎてどこを選んだいいのかわからない GitならとりあえずGitHub なんだろうけど >>585 安くあげるなら、XP-Dev.com とか。多重バックアップで安心を買いたいなら、beanstalkapp.com とか。 TortoiseSVNで、開発ブランチをtrunkにマージしたあと、 trunkのログを表示させて、「マージされたリビジョンを含める」をオンにすると、 その開発ブランチ内の一部のログが、マージしたリビジョン番号の下にグレーで表示されず、 元々のリビジョン番号のところに黒で表示されることがあります。 マージのしかたがおかしいのでしょうか。 そうなのですか? 大抵の場合は、マージしたリビジョンの下に ツリーのようにぶら下がって表示されるのですが。 2018-04-06 Apache Subversion 1.10.0-rc2 Released 2018-04-13 Apache Subversion 1.10.0 Released Windows上の共有フォルダで「file:」でTortoiseSVNを使っている場合、 1.8と1.9と1.10は共存できますか? 共存できたとしても、なにか制限とか出てきますか? そもそも、ファイル共有での動作は保証されてないやろ。 >>594 それ Gitがファイル共有で運用してるの、凄い不安があるんだけど gitの場合は、リポジトリの中身がハッシュエントリベースのようなので、競合事故がなさそうなだけまあマシ。 個人的にはやらないけども。 ニュアンスが違うぞ。そんな前向きさは一切ないだろ。 >FSFSリポジトリはネットワークフォルダー上に配置でき、file://プロトコルを用いて複数のユーザーからアクセスできますが、これは絶対にお勧め しません 。 実際のところ、このような使い方を私たちは思いとどまってほしいと強く思いますし、様々な理由からサポートもしません。 GoogleDrive 上にリポジトリおけないかとか思ったけど無理か >>598 でも保証しないとは言ってないだろ お勧めしないのはアクセス権限の話とかリポジトリのフォーマット更新の話もあるから >>599 ローカルにワーキングとは別にリポジトリのディレクトリ造っておいてそこを同期すればいい >>601 保証する なんて誰も言ってないけど? ム板なんだから「保証しないとは言ってない」が「保証すると言っている」とは違うことぐらいは理解しようよ 数年前だけどメルコのルータの簡易NASのファイル共有で使ったことがあるけどユーザ一人でも数日ごとにリポジトリ壊れて使うのあきらめたよ NASがFATだったからかもしれないけど 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 PNRFF 2018-07-20 ? Apache Subversion 1.10.2 Released 2018-07-20 Apache Subversion 1.9.9 Released 2018-10-02 Apache Subversion 1.11.0-rc2 Released ソースコード管理システム「Apache Subversion 1.11.0」リリース、 スナップショットを保存できる「コミットチェックポイント」を導入 2018年11月1日17:45 末岡洋子 https://mag.osdn.jp/18/11/01/174500 shelvingもどんなもんか使ってみたいからそろそろバージョンアップしてみるか >>624 なぜにこのスレで聞く? てかBTSスレってないのか… 自分の開発チームはsubversionを当面使うだろうな。 gitの良さと使い方教えてくれる人が身近にいれば移行が進むかも。 そもそもコミット履歴は移行できるのかな? git-svnでだいたいできるよ。 ファイルのコピー関係は失われるけど。 TortoiseSVNのアイコンオーバーレイ機能がOneDriveなどと競合するので、 レジストリエディタを使ってTortoiseSVNの項目にスペースを入れて先頭に移したり、 ShellExViewを使ってOneDriveなどのものを無効にしたりしてみたのですが、 相変わらずいくつかの状態のアイコンが表示されません。 ネット上にあるこれらの方法は、最新のWindows10では使えないものなのでしょうか。 >>631 OneDrive自体も使っているんです。 アイコンはTortoiseSVNのほうを優先させたいという希望です。 エクスポートしたらゴミファイルがいっぱいコミットされてるぞ!つって怒られました バージョン管理なしのファイルがローカルにダウンロードされるぞ、という認識だったのですが どういうことなのか教えていただけますか ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる