質問

私の会社は意図せずにcvsからsubversionに切り替えましたが、今ではcvsが戻ってくることを望んでいます。 履歴と変更をcvsからsvnに移行するツールがあり、その逆を行う同等のツールはないことを知っています。 これを行う方法に関する提案やアイデアはありますか?

役に立ちましたか?

解決

私はもともとこれを他の誰かの答えへのコメントとして追加しましたが、それが一種の答えであることに気付きました。あるSCMシステムから別のSCMシステムに変換する既存の方法がなかったこの種の移行を以前に実行しました。

SVNリポジトリーからコミットのリストを取得し、それらを一度に1つずつ繰り返し、新しく作成されたCVSリポジトリーにマージするスクリプトを書くことは、ロケット科学ではありません。すべてのブランチとタグを正確に取得するのは少し手間がかかるかもしれませんが、いくつかのブランチの改訂履歴を保存したいだけであれば、かなり簡単です。

また、CVSに切り替えても何も得られないという意見もありますが、そうする場合は、独自のスクリプトを作成することになるでしょう。 " svn export"コマンドは間違いなくこの作業に役立つでしょう。

他のヒント

それで、あなたの会社が嫌いで、CVSが良くなるSVNには何がありますか? SVNの設計者は、SVNのエクスペリエンスをCVSとかなり似たものにするために邪魔になりませんでした。 Tortoiseクライアントをフロントエンドとして使用する場合、エクスペリエンスは非常に似ています。 SVNはアトミックコミットを提供しますが、Perforceの標準にはほど遠いものの、CVSの前にあります。

あなたのyour状に同情しなければなりません。開発チームをアップグレードしました& CVSからSVNへのITチーム。すべてのバージョン履歴をアップグレードするためのすべての適切なpythonスクリプトを入手し、ほぼ4年間SVNを喜んで使用しています。約3か月前、ITチームのリーダーは「アップグレード」することを決めました。 SVNからの彼のすべてのプロジェクトは何を推測するのですか?そうです、バージョン管理システムの重いリフター:SourceSafe!

私は間違いなくSVNに固執するか、Mercurialなどの新しい分散システムのいくつかを見ることさえあります。これらのシステムでは、中央サーバーはありません。彼らは分岐することができることに依存しています。数十または数百のピア間でマージします。独自のトポロジを定義するため、たとえば、特定のピアを、毎日のビルドを実行するピアとして指定します。

あまり需要がないため、ツールが他の方向に進むとは思わない。

本当にやらなければならないのであれば、SVNリポジトリの履歴を調べ、各リビジョンを取得してCVSにコミットするスクリプトを書くのはそれほど難しくないはずです。

ところで、私はあなたがSVNでどんな問題を抱えているかを知りたいと本当に心から思っています。

SVNは良くありません。 SVNはCVSよりも優れています。 チェックアウトMercurial、GIT、Bazaarを変更する場合。

これらの他のすべての回答で注目されたとき、gitの1つの側面については説明していません:gitはcvsサーバーエミュレーションを提供します。後でcvsサーバーインターフェイスを使用して、リポジトリに集中的にアクセスします。バックグラウンドでgitを使用していることを知っている必要はなく、分散バックアップの問題に対処する必要もありません。

アップグレードではありません。これをしないでください。

まじめに、なぜSVNよりもCVSを好むのですか? CVSは文字通り、チームが明示的なコミュニケーションなしで作業できるように見せかける玩具です。本当にひどいです。

何らかの理由でSVN以外のものが必要な場合は、他のバージョン管理システムをご覧ください。多数あり、それらはすべてCVSよりも優れています(実際、Visual Source Safeだけが劣っています)。

オプションはおそらく現実的に制限されています。 CVSのアクティブな開発はしばらく前に停止したことを忘れないでください。したがって、CVS開発者からのツールはおそらくないでしょう。そして、svnの主な目標の1つはより良いCVSになることだったので、それらの開発者はおそらく誰も後方に移動することを期待していないでしょう。

しかし、Subversionが気に入らない場合は、最新の分散システム(git、mercurialなど)をご覧ください。

ハンマーしか持っていない場合、すべてが釘のように見えます。

最善の策は、svnを学習することです。

Touchy Corp長に同意する。

SVNはCVSよりも優れています。なぜなら、SVNは、いくつかの単純化と新機能を備えたほぼ同じものです。

Svnを使用すると、履歴を失わずにファイルを移動/名前変更できます。より安全なコミット(コミットはアトミック操作)とグローバルリビジョンを取得します。

とにかく、CVSに戻る前に、それをよりよく知るようにしてください。さらに良いことに、リポジトリのチームとしてのニーズを本当に理解しようとします。

PS:Corp長は Mercurial

について話していたと思います

svnはcvsよりも優れているはずですが、一部の領域ではうまく機能しませんでした。他の分散ツールははるかに高速で(svnは地獄のように遅く、cvsでさえ高速になる場合があります)、svnよりもはるかに便利な機能があり、急速に開発されています(svnの新しい機能を見るとYEARSかかります)。一方、svnは非常に簡単に習得して一元化できます(これは一部の人々にとって重要です)。

svnチームは独自のアジェンダに焦点を当てており、開発者からのサポートを得るのは非常に困難です(他のオープンソースプロジェクトと比較して)。一部のバグレポートは、開発者の関心なしに長期間存在します。

svnプロジェクトの外観と開発方法には失望していますが、将来的には変更される可能性があります。

Subversionの2つの欠点は、CVSから来ているユーザーについて考えることができる

  • http(s)を介したチェックアウトの速度
  • モジュールの欠如

最初のものはsvn(+ ssh)を使用することで解決できます。svn(+ ssh)は、CVSが独自のプロトコルを使用するため、より類似した形式です。 2番目のものは少し複雑ですが、svn:externalsによってエミュレートできます(独自の厄介な副作用があります) 他の追加の欠点に遭遇した場合、私はすべて耳にします。.

1つの点に注意してください。Bazzar、Mercurialなど(ここで何人かの人からアドバイスを受けました)はすべて分散バージョン管理システムです。これらの種類のツールを使用して同じソースコードで作業するプログラマーの大きなグループを管理することはほとんど不可能であることがわかりました。私の会社ではSVNを使用しており、素晴らしい仕事をしています。

なぜこれをしたいのかわかりませんが、SVNから移行します-> GIT-> CVSが動作する可能性があります

実行します。

git svn clone http://thesvnserver ourrepo

その後、次のガイドを使用してCVSにエクスポートし直します(これが機能するかどうかは完全にはわかりません):

http://issaris.blogspot.com /2005/11/cvs-to-git-and-back.html

git cvsexportcommit 4a20cbafdf25a141b31a8333284a332d1a4d6072

git cvsserver

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top