Относительно Mercurial Security + рекурсивные проверки вложенных репозиториев - PullRequest
2 голосов
/ 28 февраля 2011

это будет длинный пост ... извините, аванс.

Я пытаюсь обернуть голову, как собрать вместе "Репозитории для каждой ветви проекта" и как это повлияетбудет в команде.

Сейчас кажется, что

  • Может рекурсивно проверять код вложенных проверок, хотя статус 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

1 Ответ

0 голосов
/ 28 февраля 2011

Я постараюсь ответить на некоторые из ваших вопросов, хотя я действительно думаю, что вы должны обсудить это с нами вместо того, чтобы делать здесь вопросы и ответы.

Сейчас кажется, что

  • Может рекурсивно проверять код вложенных проверок, хотя статус hg не дает большой информации об изменениях файлов во вложенных хранилищах

См. hg status --subrepos или hg status -S для краткости.

  • Похоже, что я - и каждый член команды, который хочет работать над одним и тем же проектом - должен вручную отредактировать файлы .hgrc своих вложенных репозиториев, чтобы сделать регистрацию максимально безболезненной и автоматической.

Нет необходимости помещать имя пользователя и пароли в файлы .hg/hgrc - вместо этого вы должны настроить кэширование учетных данных HTTP в Mercurial .

  • Может рекурсивно проверяться, но рекурсивная проверка не поддерживается.

Оформление заказа, т. Е. Обновление, является рекурсивным. Когда вы делаете hg clone, чтобы получить локальный репозиторий, тогда Mercurial заметит файлы .hgsub и .hgsubstate и рекурсивно клонирует вложенные репозитории, на которые есть ссылки.

И я действительно хочу перепроверить, что Hg не может рекурсивно тянуть? Похоже на такое упущение, что я чувствую, что, должно быть, что-то упустил.

Да, вам не хватает того, как Mercurial знает, какие подпапки вам нужны. Пожалуйста, смотрите документацию в вики или Руководство по Kick Start .

...