мерзавец-клон мерзавца-дерева?

В Chrome есть плагин для этого заголовка (для личного использования):

https://chrome.google.com/webstore/detail/ignore-x- каркасно-заголовки / gleekbfjekiniecknbkamfmkohkpodhe / обзоры

16
задан genehack 20 February 2009 в 19:39
поделиться

4 ответа

Если вы уже используете Boost, то самый простой подход - использовать boost:: next .

for(std::list<int>::iterator i = l.begin(); i != l.end(); ++i)
    for(std::list<int>::iterator j = boost::next(i); j != l.end(); ++j)
-121--3787264-

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

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

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

Недостаток состоит в том, что вызывающий абонент должен динамически распределять каждый блок. Чтобы обойти это, можно выделить память для каждого блока и запомнить их, а не хранить один большой буфер, размер которого изменяется при заполнении. Таким образом, вы будете копировать данные дважды (один раз в выделенный фрагмент, другой раз в результирующую последовательность), но не более. Если вам придется изменить размер несколько раз, вы можете получить более двух копий.

Кроме того, действительно большие области свободной памяти могут быть трудно найти для распределителя памяти. Выделение меньших порций вполне может быть проще. Возможно, нет места для одного-гигабайтного блока памяти, но может быть место для тысячи мегабайтных блоков.

-121--1886474-

Исходя из того, что я видел, этот рабочий процесс не поддерживается с git-svn и не будет, из-за того, как SVN представляет слияния.

5
ответ дан 30 November 2019 в 12:44
поделиться

У меня есть установка моста для некоторых моих проектов, но это только односторонне от мерзавца к svn (обеспечение общедоступного зеркала SVN только для чтения нашего ведущего ответвления мерзавца). Однако, так как это хорошо работает, это могло бы помочь Вам или указать на Вас в правильном направлении в Вашем двухстороннем сценарии так или иначе, поскольку я предполагаю, что это - мерзавец-> svn, который делает проблемы, не svn-> мерзавец:

Мой односторонний сценарий: Существующий репозиторий мерзавца в GitHub, нуждайтесь в svn зеркале только для чтения ведущего ответвления мерзавца

  • , Создают и инициализируют целевой репозиторий подверсии на Сервере:

    svnadmin create svnrepo
    mkdir trunk
    svn import trunk svn://yoursvnserver/svnrepo
    rmdir -rf trunk
    
  • Создают смешанный контроль Мерзавца-Svn и инициализируют репозиторий подверсии

    git svn clone svn://yoursvnserver/svnrepo/trunk
    cd trunk
    git remote add github git://github.com/yourname/repo.git
    git fetch github
    git branch tmp $(cat .git/refs/remotes/github/master)
    git tag -a -m "Last fetch" last tmp
    INIT_COMMIT=$(git log tmp --pretty=format:%H | tail -1)
    git checkout $INIT_COMMIT .
    git commit -C $INIT_COMMIT
    git rebase master tmp
    git branch -M tmp master
    git svn dcommit --rmdir --find-copies-harder
    
  • Обновление зеркало

    git fetch github
    git branch tmp $(cat .git/refs/remotes/github/master)
    git tag -a -m "Last fetch" newlast tmp
    git rebase --onto master last tmp
    git branch -M tmp master
    git svn dcommit --rmdir --find-copies-harder
    mv .git/refs/tags/newlast .git/refs/tags/last
    

Это, две статьи от googlecode могли бы помочь также:

9
ответ дан Fabian N. 21 February 2009 в 05:39
поделиться
  • 1
    просто напоминание, это возвратит массив сокетов в комнате. Таким образом получить количество людей в комнате, убедиться добавить .length к вышеупомянутому коду – levi 18 June 2012 в 21:21

Как я часто говорил на #git:

git-svn похож на летающую машину. Всем нужна летающая машина, пока они не поймут, что летающая машина - это плохо и как машина, и как самолет.

Реальное решение - как можно быстрее полностью отказаться от SVN. Используйте git-svn для одноразовой миграции, а затем переместите всех. Git не так сложно выучить.

3
ответ дан 30 November 2019 в 12:44
поделиться

Одна вещь, которая может вызвать у вас проблемы, - это то, что git svn dcommit перезапишет все коммиты, которые он отправляет в SVN- по крайней мере, если он настроен на добавление примечания к метаданным SVN в нижнюю часть сообщений фиксации. Таким образом, вам придется принять поток, в котором любые репозитории, принимающие коммиты из вашей рабочей области git-svn, перебазируются против него, теряя всю историю слияния, которая в любом случае не может быть сохранена в SVN.

9
ответ дан 30 November 2019 в 12:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: