Как я отслеживаю локально-единственные изменения/массивы изменений с мерзавцем-svn?

Что ж, для этого вы можете использовать :is для создания динамического компонента.

Используется для динамических компонентов и для обхода ограничений шаблонов в DOM.

blockquote>

Вот рабочая JsFiddle

Вот официальная документация

Надеюсь, это поможет

7
задан normal 11 March 2009 в 20:56
поделиться

5 ответов

Вы рассмотрели не работу в основном ответвлении?

Если Вы сохраняете свои изменения в локальном ответвлении мерзавца, можно периодически объединять или избирательно подходить к выбору только желаемых изменений в svn, отслеживающий ответвление. Переключитесь на ответвление отслеживания, выполните свой dcommit. Затем вернитесь к своему локальному ответвлению и повторно основывайте его.

Если Вы хотите изменения в нескольких ответвлениях, основываете их всех прочь той же точки разветвления. Сохраните то ответвление как master+changes через перебазирование. Затем для всех Ваших других ответвлений, просто повторно базируйтесь от того основного ответвления.

1
ответ дан 7 December 2019 в 12:25
поделиться

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

Добавьте свои "non-SVN" файлы в рабочее ответвление только. Обычно вносите все изменения кода в рабочем ответвлении. Когда "non-SVN" файлы изменятся, добавьте тех, которые используют уникальную фиксацию, и установите префикс сообщения о фиксации (т.е. "локальный": или "частный":). Когда Вы готовы согласиться на SVN затем:

  1. Покажите журнал фиксаций для добавления к SVN:

    git co working
    git cherry master
    
  2. Добавьте, что весь восходящий поток соглашается на основное ответвление, игнорируя "частные" фиксации. Повторите этот шаг, пока все восходящие фиксации не будут в ведущем устройстве.

    git co master
    git cherry-pick <SHA1>
    
  3. Нажатие соглашается на SVN repo:

    git svn rebase
    git svn dcommit
    
2
ответ дан 7 December 2019 в 12:25
поделиться

Мое текущее решение проблемы состоит в том, чтобы использовать сложенного мерзавца (stg) и поддержать эти локальные изменения как отдельные патчи. Когда мне нужно к dcommit в Подверсию, я делаю a

stg pop # naming the patches that should not be commited
stg commit # the rest of the patches to commit
git svn dcommit
stg push # naming the patches that are used locally

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

stg push local-mods-derby
ant tests
stg pop

или если я хочу протестировать против PostgreSQL, я работаю

stg push local-mods-test-postgresql
ant tests
stg pop

Здесь, "локальное дерби модификаций" и "local-mods-test-postgresql" являются именами патча.

Так поддержание отдельных патчей работы очень легко с stg.

2
ответ дан 7 December 2019 в 12:25
поделиться

Вы могли бы хотеть рассмотреть использование притона для этого.

git-stash - Stash the changes in a dirty working directory away

Это могло бы быть недостаточно мощно для того, что Вы описываете все же.

0
ответ дан 7 December 2019 в 12:25
поделиться

Я провел некоторое исследование и придумал возможность, которая могла сделать это: 2 репозитория мерзавца, указывающие на тот же каталог. Переменная среды GIT_DIR хранит название каталога локального репозитория. Если сброшено, значения по умолчанию мерзавца к .git, но это могло бы быть что-либо.

Что я мог сделать, затем, имеют один репозиторий в .git, который отображается на мой репозиторий Подверсии. Это - общий падеж. Затем у меня мог быть другой репозиторий в .localgit. Каждый репозиторий должен был бы быть настроен для игнорирования файлов, управляемых другим. Это легко с! для отрицания шаблонов.

Когда я вношу изменение в локально-единственные файлы, в которых я хочу зарегистрироваться, я или изменить мою переменную среды GIT_DIR или использовать - параметр командной строки dir мерзавца. Если я имею, мой исключает/игнорирует настроенный правильно, я не должен буду волноваться о коллизиях. Существуют, очевидно, немного служебные, чтобы усовершенствовать это, но я могу записать сценарий обертки, который добавляет файл к исключению одного repo, когда файл добавляется к другому. Кроме того, то, что наверху только происходит однажды на файл, а не на каждой фиксации, поскольку с несколькими переходят предложение.

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

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

0
ответ дан 7 December 2019 в 12:25
поделиться
Другие вопросы по тегам:

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