Ветвление и синхронизирует репозиторий Google Code Subversion в GitHub

Я не могу его запустить. Он говорит, что не может разрешить символ намерения и startActivity

Убедитесь, что вы объявили это сверху

import android.content.Intent
131
задан darkomen 23 March 2016 в 11:31
поделиться

4 ответа

Удаленная ветвь из git-svn почти такая же, как и у обычного удаленного Git. Таким образом, в вашем локальном репозитории вы можете получить клон git-svn и отправить изменения в GitHub. Git не волнует. Если вы создадите свой клон git-svn и внесете те же самые изменения в GitHub, у вас будет неофициальное зеркало репозитория Google Code. Остальное - ванильный Git.

git svn clone http://example.googlecode.com/svn -s
git remote add origin git@github.com:example/example.git
git push origin master

Теперь, когда у вас есть это, иногда вам придется синхронизировать репозиторий Subversion с Git. Это будет выглядеть примерно так:

git svn rebase
git push

В gitk или где-то еще это будет выглядеть примерно так:

o [master][remotes/trunk][remotes/origin/master]
|
o
|
o

И когда вы запустите git svn rebase , вы получите следующее:

o [master][remotes/trunk]
|
o
|
o [remotes/origin/master]
|
o
|
o

Итак, теперь работает git push отправит эти коммиты в GitHub, там находится ветка [remotes / origin / master] . А ты' Вернемся к сценарию в первой диаграмме ASCII. Теперь проблема в том, как вы вносите свои изменения в микс? Идея в том, что вы никогда не делаете коммит на ту же ветку, что и git-svn-rebase-ing и git-pushing. Вам нужна отдельная ветка для ваших изменений. В противном случае вы в конечном итоге отменили бы свои изменения над изменениями Subversion, что может расстроить любого, кто клонирует ваш репозиторий Git. Подписывайтесь на меня? Итак, вы создаете ветку, давайте назовем это «функции». И вы делаете коммит и отправляете его на GitHub в ветку функций. Ваш гитк будет выглядеть примерно так:

o [features][remotes/origin/features]
|
o
|
o [master][remotes/trunk][remotes/origin/master]
|
o

Здесь у вас есть ветка функций на пару коммитов перед веткой Google Code, верно? Так что же произойдет, если вы захотите добавить новый материал из Google Code? Сначала вы запустите git svn rebase и получите это:

                           o [features][remotes/origin/features]
[master][remotes/trunk] o  |
                        |  o
                        o /
                        |/
                        o[remotes/origin/master]
                        |
                        o

Если вы git push мастер, вы можете представить, что [remotes / origin / master] находится в той же точке, что и мастер. Но ваша ветвь функций не имеет изменений. Теперь ваш выбор - объединить мастер с функциями или изменить их. Объединение будет выглядеть следующим образом

git checkout features
git merge master 

            o [features]
           /|
          / o [remotes/origin/features]
[master] o  |
         |  o
         o /
         |/
         o
         |
         o

Затем вы отправляете функции в GitHub. Я оставил пульты для мастера, чтобы сэкономить место, они были бы в той же точке, что и [мастер] .

Подход с ребазой немного более злой - вам придется нажать с --force, поскольку ваш push не будет быстрым слиянием (вы извлечете ветвь функций из-под кого-то, кто ее клонировал). Это не считается нормальным, но никто не может остановить вас, если вы полны решимости. Это тоже делает некоторые вещи проще, например, когда патчи принимаются вверх по течению в слегка переработанной форме. Это избавило бы от необходимости возиться с конфликтами, вы можете просто перебазировать - пропустить обновленные патчи. В любом случае, перебазирование будет таким:

git rebase master features

         o [features]
         |
         o
         |  o [remotes/origin/features]
[master] o  |
         |  o
         o /
         |/
         o
         |
         o

И тогда вам придется git push --force это. Вы можете понять, зачем вам это нужно, история имеет большой старый раскол от [remotes / origin / features] до нового текущего постбазирования [features] .

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

За исключением необходимости возиться с конфликтами, вы можете просто перебазировать - пропустить патчи, добавленные в верхнюю часть. В любом случае, перебазирование будет таким:

git rebase master features

         o [features]
         |
         o
         |  o [remotes/origin/features]
[master] o  |
         |  o
         o /
         |/
         o
         |
         o

И тогда вам придется git push --force это. Вы можете понять, зачем вам это нужно, история имеет большой старый раскол от [remotes / origin / features] до нового текущего постбазирования [features] .

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

За исключением необходимости возиться с конфликтами, вы можете просто перебазировать - пропустить патчи, добавленные в верхнюю часть. В любом случае, перебазирование будет таким:

git rebase master features

         o [features]
         |
         o
         |  o [remotes/origin/features]
[master] o  |
         |  o
         o /
         |/
         o
         |
         o

И тогда вам придется git push --force это. Вы можете понять, зачем вам это нужно, история имеет большой старый раскол от [remotes / origin / features] до нового текущего постбазирования [features] .

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

перебазирование будет выглядеть следующим образом:

git rebase master features

         o [features]
         |
         o
         |  o [remotes/origin/features]
[master] o  |
         |  o
         o /
         |/
         o
         |
         o

И тогда вам нужно будет git push --force это. Вы можете понять, зачем вам это нужно, история имеет большой старый раскол от [remotes / origin / features] до нового текущего постбазирования [features] .

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

перебазирование будет выглядеть следующим образом:

git rebase master features

         o [features]
         |
         o
         |  o [remotes/origin/features]
[master] o  |
         |  o
         o /
         |/
         o
         |
         o

И тогда вам нужно будет git push --force это. Вы можете понять, зачем вам это нужно, история имеет большой старый раскол от [remotes / origin / features] до нового текущего постбазирования [features] .

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

история имеет большой старый раскол от [remotes / origin / features] до нового текущего постбазирования [features] .

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

история имеет большой старый раскол от [remotes / origin / features] до нового текущего постбазирования [features] .

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

Т ваши изменения в GitHub. Держите их локально и в любом случае попытайтесь принять их вверх по течению.

Т ваши изменения в GitHub. Держите их локально и в любом случае попытайтесь принять их вверх по течению.

178
ответ дан 24 November 2019 в 00:18
поделиться

Я не совсем уверен, что именно вы хотите, но, конечно, вы можете извлечь из хранилища Subversion и отправить в хранилище Git из той же рабочей копии. И вы также можете git svn dcommit вернуться в хранилище Subversion. Вы не можете синхронизировать репозиторий GitHub с репозиторием Subversion. Кроме того, когда в вашей рабочей копии есть коммиты, которых еще нет в хранилище Subversion, вам нужно будет перебазировать их, если хранилище Subversion было обновлено, заставляя вас git push --force «новые» коммиты на GitHub.

0
ответ дан 24 November 2019 в 00:18
поделиться

Хм .. В моей компании я делал почти то же самое. Просто наличие и .svn, и .git репо в одном каталоге (вы извлекаете svn репо и создаете git repo в этой рабочей копии).

Затем с помощью svn up и git push все получилось. Конечно, если вы сильно расходитесь, вам придется объединять вещи вручную.

1
ответ дан 24 November 2019 в 00:18
поделиться

Пошаговое руководство по синхронизации из Google Code в GitHub доступно на fnokd.com . Автор использует постоянно включенный удаленный сервер и задание cron для автоматизации синхронизации и сохраняет магистраль SVN в ветке GitHub под названием «vendor».

10
ответ дан 24 November 2019 в 00:18
поделиться
Другие вопросы по тегам:

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