2

これは長い投稿になるだろう...前もって申し訳ありません。

「プロジェクトブランチごとのリポジトリ」をまとめる方法と、それがチームに与える影響について頭を悩ませています。

現在、

  • ネストされたチェックインのコードを再帰的にチェックインできますが、hg ステータスはネストされたリポジトリ内のファイルの変更に関する多くの情報を提供しません
  • 私、そして同じプロジェクトに取り組みたいすべてのチームメンバーは.hgrc、チェックインをできるだけ簡単かつ自動化するために、サブリポジトリのファイルを手動で編集する必要があるようです。
  • 再帰的にチェックインできますが、再帰的にチェックアウトはサポートされていません。

それはHgの能力の正しい分析ですか?

私が見た平均的な開発チームが生産性を維持しながら処理できるよりも、スティックシフトコーディング (つまり、コマンドプロンプトをあちこちいじる) がはるかに多いため、そうならないことを本当に望んでいます。私が理解しているように、単一のアセンブリをリファクタリングすると、.hgrcファイルの編集を停止して場所、ユーザー、およびパスワードを追加するため、おそらくチームが停止することになります。いいえ?

そして、Hgが再帰的にプルできないことを本当に再確認したいですか? 私は何かを逃したにちがいないと感じるほどの省略のように聞こえます。

ありがとう!

PS: 勇敢な人も愚かな人も (助けになる場合に備えて)、他のライブラリ モジュールを参照するライブラリ モジュールを参照するプロジェクトの問題を回避するために私が守ってきたメモは次のとおりです (??? に注意してください)。 ? 質問??? それらにちりばめられた...

MERCURIAL 

# requires an .hgsub with a ref to either
# an Hg Repo for only one Bin...?
# a website download...is that possible?
# an svn repo that allow referencing just one folder in it
# eg: "BIN/A3rdParty = svn:^/BinCache/A3rdParty/bin"


LibA\
     hg\
        .hgrc 
        # ??? QUESTION ???
        # does each user have to edit their own files by hand 
        # to allow automatic push/pull?
        # "default = https://user:pwd@bitbucket.org/xact/liba"
        # "default-push = https://user:pwd@bitbucket.org/xact/liba"
     .hgsub
     # Map of nested repos as follows:
     # "BIN/A3rdParty = svn:^/BinCache/A3rdParty/bin"
     # "EXT/LibA = https://bitbucket.org/xact/liba"
     # "EXT/LibB = https://bitbucket.org/xact/libb"
     LibA.sln
     BIN\
         [A3rdParty\SomeLib.dll]
     EXT\
     SRC\
         LibA\LibA.csproj
         # ...which References "..\..\BIN\A3rdParty\SomeLib.dll"
         LibA.Tests\LibA.Tests.csproj
         # ...which References "..\LibA\LibA.csproj"


LibB\
     hg\
        .hgrc 
        # ??? QUESTION ???
        # does each user have to edit their own files by hand 
        # to allow automatic push/pull?
        # "default = https://user:pwd@bitbucket.org/xact/libb"
        # "default-push = https://user:pwd@bitbucket.org/xact/libb"
     .hgsub
     # that contains:
     # "BIN/A3rdParty = svn:^/BinCache/A3rdParty/bin"
     # "EXT/LibA = https://bitbucket.org/xact/liba"
     # ??? QUESTION ???
     # do end users add user/pwd info here? or in the 
     # nested repos .hgrc file?
     LibB.sln
     BIN\
         [A3rdParty\SomeLib.dll]
     EXT\
         LibA\
              hg\
                .hgrc 
                # ??? QUESTION ???
                # does each user have to edit their own files by hand 
                # to allow automatic push/pull?
                # "default = https://user:pwd@bitbucket.org/xact/liba"
                # "default-push = https://user:pwd@bitbucket.org/xact/liba"
              LibA.csproj
              # ...which References "..\..\BIN\A3rdParty\SomeLib.dll"
              LibA.Tests\LibA.Tests.csproj
              # ...which References "..\LibA\LibA.csproj"
     SRC\
         LibB\LibB.csproj
         # ...which References "..\..\EXT\LibA\LibA.csproj"
         LibB.Tests\LibB.Tests.csproj
         # ...which References "..\LibB\LibB.csproj"


ProjA\
      hg\
        .hgrc 
        # ??? QUESTION ???
        # does each user have to edit their own files by hand 
        # to allow automatic push/pull?
        # "default = https://user:pwd@bitbucket.org/xact/proja"
        # "default-push = https://user:pwd@bitbucket.org/xact/proja"
      .hgsub
      # that contains:
      # "BIN/A3rdParty = svn:^/BinCache/A3rdParty/bin"
      # "EXT/LibA = https://bitbucket.org/xact/liba"
      # "EXT/LibB = https://bitbucket.org/xact/libb"
      # ??? QUESTION ???
      # do end users add user/pwd info here? or in the 
      # nested repos .hgrc file?
      BIN\
          [A3rdParty\SomeLib.dll]
      EXT\
          LibA\
               hg\
                .hgrc 
                # ??? QUESTION ???
                # does each user have to edit their own files by hand 
                # to allow automatic push/pull?
                # "default = https://user:pwd@bitbucket.org/xact/liba"
                # "default-push = https://user:pwd@bitbucket.org/xact/liba"
               LibA.csproj
               # ...which References "..\..\BIN\A3rdParty\SomeLib.dll"
               LibA.Tests\LibA.Tests.csproj
               # ...which References "..\LibA\LibA.csproj"
          LibB\
               hg\
                .hgrc 
                # ??? QUESTION ???
                # does each user have to edit their own files by hand 
                # to allow automatic push/pull?
                # "default = https://user:pwd@bitbucket.org/xact/libb"
                # "default-push = https://user:pwd@bitbucket.org/xact/libb"
               LibB\LibB.csproj
          # ...which References "..\..\EXT\LibA\LibA.csproj"
          # Important: note that it is same path offset
          # as when within context of LibB.sln
          LibB.Tests\LibB.Tests.csproj
          # ...which References "..\LibB\LibB.csproj"
      SRC\
          ProjA\ProjA.csproj
          ProjA.Tests\ProjA.Tests.csproj
4

1 に答える 1

0

私はあなたの質問のいくつかに答えようとしますが、ここで Q&A を行うのではなく、私たちと話し合うべきだと本当に思います.

現在、

  • ネストされたチェックインのコードを再帰的にチェックインできますが、hg ステータスはネストされたリポジトリ内のファイルの変更に関する多くの情報を提供しません

hg status --subreposまたはhg status -S略して参照してください。

  • 私、そして同じプロジェクトに取り組みたいすべてのチームメンバーは.hgrc、チェックインをできるだけ簡単かつ自動化するために、サブリポジトリのファイルを手動で編集する必要があるようです。

ユーザー名とパスワードを.hg/hgrcファイルに入れる必要はありません。代わりに、Mercurial で HTTP クレデンシャルのキャッシュを設定する必要があります。

  • 再帰的にチェックインできますが、再帰的にチェックアウトはサポートされていません。

チェックアウト、つまり更新は再帰的です。ローカル リポジトリを取得する場合hg clone、Mercurial は.hgsubおよび.hgsubstateファイルを認識し、そこで参照されているサブリポジトリを再帰的に複製します。

そして、Hgが再帰的にプルできないことを本当に再確認したいですか? 私は何かを逃したにちがいないと感じるほどの省略のように聞こえます。

はい、必要なサブリポジトリを Mercurial がどのように認識しているかがわかりません。wikiのドキュメントまたはKick Start guideを参照してください。

于 2011-02-28T09:55:55.303 に答える