У меня есть проблема с ответвлением SVN. Я сделал контроль из него с git checkout -t -b stable svn/stable
. Затем я сделал слияние с git rebase master
. После этого я пытался фиксировать изменения слияния в удаленное ответвление с git svn dcommit
Но теперь это кажется, что Мерзавец продвинул изменения в соединительную линию вместо ответвления :(
И git status
говорит мне:
# On branch stable
# Your branch and 'svn/stable' have diverged,
# and have 218 and 52 different commit(s) each, respectively.
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
...
Кто-то знает то, что я сделал неправильно и как сделать его правильно?
Я бы не пытался сравнивать Perl и Python слишком много, чтобы выучить Python, тем более что у вас есть рабочие знания других языков. Если вы не знакомы с аспектами программирования OOP/Functional и просто хотите работать процедурно, как в Perl, начните изучать конструкции/синтаксис языка Python, а затем сделайте пару примеров. если вы делаете переход на OO или функциональный стиль парадигмы, я бы прочитал на OO основы, а затем начать на Python синтаксис и примеры... так что у вас есть своего рода ментальный план того, как вещи могут быть построены, прежде чем вы начнете работать с фактическими материалами. это просто мое смиренное мнение, однако..
-121--1041187-Вопрос, который следует задать себе: есть ли что-либо о типе перечисления в C #, что указывает на то, что я должен относиться к нему иначе, чем ко всем другим типам, которые я создаю?
Если перечисление является открытым, оно должно рассматриваться как любой другой публичный тип. Если класс является частным, объявите его вложенным членом класса с его помощью. Нет веской причины помещать два открытых типа в один и тот же файл только потому, что один из них является перечислением. Тот факт, что это публичный тип, имеет большое значение; аромат типа не имеет.
-121--651632- Недавно я столкнулся с той же ошибкой. Дело в том, что при ребазе к мастеру он сначала жестко сбрасывает текущую ветвь к мастеру, а затем применяет к нему фиксы, которые объединяются. Но главная ветвь связана с svn/trunk
, и, таким образом, новая ветвь сброса также становится связанной с ней. Поэтому git-svn
на dcommit
считает, что фиксаторы «вставляются» в svn/trunk
при нажатии на них.
Решение заключается в использовании git merge --no-ff
вместо git rebase
. Или использовать средства слияния самой Subversion.
Теперь это работает, я сделал это так:
git checkout master
git svn rebase
git checkout --track -b svn_stable svn/stable
git merge --squash master
git commit -m "Bring stable up-to-date with trunk"
git svn dcommit --dry-run
git svn dcommit
Слияние было намного проще, чем перебазирование с обработкой конфликтов.
В этой попытке я забыл использовать - no-ff
, это вызывает фиксацию для каждого слияния, верно?
Спасибо за вашу помощь :)