Я могу переместить .git каталог для repo к, он - родительский каталог?

button('hey') вызывает функцию, а не устанавливает ее как обратный вызов.

36
задан MiniQuark 5 March 2009 в 23:23
поделиться

3 ответа

Можно сделать то, что Вы описываете как это:

  1. Перемещение содержание ABC к ABC/ подкаталог, и исправляет историю так, чтобы было похоже, что это всегда было там:

    $ cd /path/to/ABC
    $ git filter-branch --index-filter \
        'git ls-files -s | sed "s-\t-&ABC/-" |
         GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
         git update-index --index-info &&
         mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
    

    Теперь Ваша структура каталогов ABC/ABC/your_code

  2. То же для содержания DEF:

    $ cd /path/to/DEF
    $ git filter-branch --index-filter \
        'git ls-files -s | sed "s-\t-&DEF/-" |
         GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
         git update-index --index-info &&
         mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
    

    Теперь Ваша структура каталогов DEF/DEF/your_code

  3. Наконец, создайте PPP репозиторий и вытяните и ABC и DEF в него:

    $ mkdir /path/to/PPP
    $ cd /path/to/PPP
    $ git init
    $ git pull /path/to/ABC
    $ git pull /path/to/DEF
    

    Теперь Вы имеете PPP/ABC/your_code и PPP/DEF/your_code, наряду со всей историей.

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

Примечание: броское filter-branch команды прибывают из страницы справочника .:-)

44
ответ дан digitalextremist 8 July 2019 в 00:08
поделиться

Для меня кажется трудным сделать способ, которым Вы хотите это, потому что история обоих проектов не объединится.

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

0
ответ дан claf 8 July 2019 в 00:08
поделиться

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

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

В псевдосинтаксисе:

class Option[a] = Some[a] | None,

где a - параметр универсального типа, Some представляет результат со значением и None non -result без значения.

в индексе В случае, если у вас будет:

Option[Integer] indexOf(char c) = {
   if(found) return Some(index)
   else return None
}

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

result = "uncle".indexOf('c')
result match {
  Some(i) => System.out.println("index was: " + i);
  None => System.out.println("no value");
}

Если вы пропустили какой-либо или None из сопоставления (что является своего рода обобщенным переключателем), компилятор выдаст вам предупреждение.

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

Использование подмодулей позволит избежать проблем с существующими копиями репозиториев, поскольку история не меняется. Их объединение создаст новую историю, и людям, работающим из существующих веток, будет сложнее объединить свои изменения.

5
ответ дан 27 November 2019 в 06:06
поделиться
Другие вопросы по тегам:

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