5

私たちが行っている学校のプロジェクトでは、使用されているVCSはSVNです。

制約:

  • 私たちの教授は、機能していないコードを中央リポジトリにコミットすることを望んでいません。

  • 私は外出先でコードに取り組んでいます。私は1日のさまざまな時間帯に、オフィスのラップトップ、デスクトップ、およびPCでコーディングします(生産性が高いと思います)

  • 分岐は許可されていません

作業中のファイルを別のリポジトリ(およびおそらくGIT)に保存して、メインリポジトリで「デッドコード」をコミットしないように移動することを考えていました。その後、2つのリポジトリ間でコピーを貼り付けないようにするために、一方のリポジトリのファイルをもう一方のリポジトリにシンボリックリンクします。そのため、一方のリポジトリでファイルを際限なくコミットし、完了したら、もう一方のリポジトリでコミットします。

ただし、シンボリックリンクに関するVCSの動作はわかりません。

私はここStackOverflowで、GITがシンボリックリンクをファイルとして保存し、それを取得すると、ターゲットが存在するかどうかに関係なく、シンボリックリンクに返すという回答を読みました。これは良くありません。代わりに「デッドファイル」を取得している可能性があります。

私もSVNのこのドキュメントを読みましたが、シンボリックリンクを取得した後に何が出るかについては何も教えていません。

では、2つのリポジトリを同じファイルと同期するにはどうすればよいですか?シンボリックリンクを探すべきですか、それとも別の方法がありますか?

4

2 に答える 2

2

イントロ:

「デッドコードなし」および「ブランチなし」は、悪くて醜い開発ポリシーであり、その結果、(ほとんどの場合)巨大で管理不可能なコミットにつながるポリシーです。

  1. 純粋なシンボリックリンクを忘れて、ネイティブのツールとメソッドを使用する
  2. (一部)外部ソースは、 Subversion外部を使用してSubversionリポジトリにリンクできます
  3. モバイル開発は、問題の最初の部分には(ほとんど)無関係な質問です。Subversion(Mercurial、Git、Bazaar、Fossil-SCM / over git-export /)に最近ブリッジできる任意の(D)VCSを使用してください。
于 2012-09-24T10:16:42.173 に答える
2

これが私の提案です:

  1. git svnclone<教授リポジトリへのURL>
  2. ステップ1の後、Subversionリポジトリのローカルコピーがあります
  3. gitbranch<ブランチ名> -教授にこのブランチが表示されないことを心配しないでください
  4. あなたのブランチで作業し、完了するまであなたが望むものをコミットします-すべての作業とテストに合格します-それはあなたのコードを教授に与える時です
  5. gitチェックアウトマスター
  6. git svnrebase -svnmainlineから最新の変更を選択します
  7. git merge <ブランチ名> -教授がシングルコミットを見たい場合は、-squashオプションを使用できます
  8. gitsvndcommit-変更をメインラインに公開します

HTH。

于 2012-09-24T10:36:36.970 に答える