2012-04-20 21 views
5

でブランチの使用を理解する私はSubversionの完全なnewbですが、SourceSafeの驚くべき影を乗り越えようとしています。だから私は何を学んでいるのか、何を教えようとしているのか、まだ理解していないいくつかの障害物を見つけました。Visual Studio 2010、AnkhSVN、およびSVN 1.7.4

SVN 1.7.3は、ローカルのLinuxボックスで起動しています。 AnkhSVNはVS 2010セットアップ内にインストールされています。 VS/AnkhSVNは私のリポジトリと話すことができます。だから私はいくつかの非常に簡単なConsoleプロジェクトを試してみました。私は今まで見つけた指針に示唆されているように、トランク、ブランチ、タグディレクトリを作成しました。

私は新しいコンソールソリューションを作成し、Ankhがそのプロジェクトをリポジトリの推奨する "trunk"フォルダの下に作成することを許可しました。 Program.csに "Hello、World"行以上を追加した後、私はトランクに変更をコミットします。それは...今のところうまくいっています...

私は今私が私立のブランチで仕事をしていると思っていますので、Subversion-> Branch Project ...を選んでください。 "ヘッド/最新"バージョン、 "作成後にブランチに切り替える"をチェックそれはうまくいくようです。物事がdicey取得する場所

問題1.

は今ここにいます。プライベートブランチのプロジェクトに単一のソースファイルを追加してファイルを追加することにしましたが、プライベートブランチからトランクにファイルを移動することはできません。マージ/再統合は機能しません。更新が機能しません。スイッチが動作しません。さて、ブランチからトランクへの切り替えを試みた後、VSは自分のプロジェクトファイルが壊れていてロードできないことを伝えます。

明らかに、私は何か間違ったことをしたことがありますが、私は何がわかりません。私はちょうどトランクの作業コピーを取得し、次にマージを行う必要があるようですが、VSプロジェクトフォルダのセットアップではどうしたらいいですか?問題1の一部であってもよい

問題2

私の次の問題、または質問は、Subversionの管理のプロジェクトは、Visual Studio側で構造化する方法を理解することです。 Unix側ではプロジェクトをローカルフォルダにプルすることができますが、VSプロジェクトの典型的なディレクトリ構造がどのようにSubversionの影響を受けるのかははっきりしません。トランクとブランチのフォルダをローカルのVisual Studioボックスにも複製する必要がありますか?私がトランクからプライベートブランチに(またはその逆に) "切り替える"場合、対応するファイルがVSフォルダの同じセットに入るべきであるか、ブランチとトランクに対応するセットがあるべきかどうかです?

問題3 これは初心者SVNの質問の詳細ですが、SVNの競合がある私に語ったとき、私はまだそれらを解決する方法を理解していません。 ankhSVNプラグインには競合を解決するための特別なツールがありますか、それとも完全なsvnツールを使用してホストサーバー上で修正する必要がありますか?もしそうなら、解決すべき最も典型的な紛争は何か?

+0

もう1つの答えを受け入れることは大丈夫です。 –

+0

ありがとうございます - お返事に深みをお寄せいただいたことをお待ちしております。それで、SOは "優勝者"の回答や他の良い答えのための "小道具"のようなものを許可することを望みます。tho :)祝福された日を過ごしてください。 –

答えて

2

まず最初に行うこと:Version Control with Subversionの最初の2つの章を読んで例を試してみてください。後者を行うには、Slik SVNのようなコマンドラインクライアントを使用する方がよいでしょう。

AnkhSVNだけではSVNクライアントでは不十分です.SVNをVSに統合するための便利なツールです。したがって、GUIクライアント(コマンドラインクライアントに加えて、IMHOはどんな場合でも必須)を使用したい場合は、Windows用の最も一般的なクライアントはTortoise SVNです。

(積極的)のSubversionでバージョン管理を読んでは、すべてのあなたの現在の質問のお手伝いをしますが、ここではいくつかの初期の考えです:

問題1はあなたはブランチをコミットしましたか?あなたは問題svn info [repo_url]/branches/[your_branch]

実行することで確認することができます2それはあなたの部分にいくつかの誤解があるようです:SVNもローカルにファイルを(用語は、「チェックアウト」です)「引っ張ります」。本を読む!!!

通常、SVN構造にはフォルダ構造が反映されている必要があります。その逆もありません。また、一般的には、一度に1つのブランチでのみ作業し、1つのブランチだけをチェックアウトします。別のブランチで作業する必要があるときは、「svn switch」を実行します。それはスペースを節約します。今、もちろん、リポジトリからすべてのリポジトリをチェックアウトすることができますが、なぜそうするのですか? (私はそのような状況を考えることができますが、通常のワークフローではなくリポジトリのメンテナンスにもっと関心があります)。

問題3コンフリクト - あなたが本を読むまで議論する価値はありません。

これが正しい方向に向いてくれることを願っています。本の最初の2つの章を読むことで、数時間から数日の間でどこにでも行くことができます。

+0

コメントとヒントをありがとう。ブランチは間違いなくコミットされました。それを私がトランクに戻して再統合しようとする前にそれをしました。私はまた、AnhkSVN自体が完全なSVNクライアントとして機能するのに十分なほど大きなものではないことに気づいたので、TortoiseSVNをインストールしました。これはすでに助けられています。私はトランクの新しいコピーを引っ張ってここから私のブランチを再統合し、追加のソースファイルがすぐに追加されました。私は本を​​さらに読んでより多くの洞察を得るでしょう。教育に感謝します! –

+0

> _Iインストール済みTortoiseSVN_ 私はまだSVNを正しく学ぶためにはコマンドラインクライアントが必要だと思います。学習曲線はやや急峻ですが、より深い洞察を得ることができます。次に、いくつかの高度な場合を除いて、ほとんどがGUIクライアントを使用します。がんばろう! –

+0

malenkiy_scot、それはおそらく私の年齢には恵まれていますが、私は非常に理由のために、ほとんどのツールにコマンドラインインターフェイスを好む - それは通常、フードの中で物事がどのように実行されているかを理解することに近づく。今週末にもっと読書や実験をすることを願って、多分情報の一部が灰色の物質にいくつかの亀裂を見つけるでしょう:)助けてくれてありがとう。 –

2
  1. ファイルを追加してコミットしましたか?

  2. hereの例のように、同じフォルダを維持するスイッチを使用することも、トランクとブランチ用に2つの分離したフォルダを持つこともできます。それはあなた次第であり、あなたのプロジェクトには何が役立ちます。プロジェクトが特定のパス(たとえばWebサービス)になければならない場合は、スイッチを使用するほうが良いかもしれません。

  3. 残念ながら私の前にAnkhはありませんが、Ankhに組み込まれているツールとの競合を編集または解決できるはずですが、サードパーティのツールを使用するように設定を変更することもできます。ドキュメントhere

+0

ありがとう、WhiteKnight。紛争の物理的解決はAnkhで行うことができます。私の質問は、なぜAnkhが一見、私の枝をトランクに再統合することができなかったのかということでした。私が他の回答に応じて書き留めたように、おそらくこれがAnkhの限界かもしれないと思ったので、TortoiseSVNをクライアントボックスにダウンロードして、最初の試みで再統合することができました。私はまだ学んでいますが、これまでに学んだことは、AnkhSVNだけでは「真の」SVNクライアントとしては十分ではないということです。 –

+0

歴史的に、AnkhSVNはSubversionのすべてのタスクを実行する能力を持っていませんでしたが、ほとんどのタスクを実行できるようになりました。私は一般にTortoiseSVNを通して自分の仕事の大部分を実行しますが、AnkhSVNを使ってソース管理で何が起こっているのかを見ることができます。 – WhiteKnight