Как мне проще всего реорганизовать git-репозиторий?

fileinput module имеет очень уродливый API, я нахожу красивый модуль для этой задачи - in_place , пример для Python 3:

import in_place

with in_place.InPlace('data.txt') as file:
    for line in file:
        line = line.replace('test', 'testZ')
        file.write(line)

Основное отличие от fileinput:

  • Вместо захвата sys.stdout для записи возвращается новый дескриптор файла.
  • Ручка файла поддерживает все стандартные методы ввода-вывода, а не только readline ().

3
задан Noufal Ibrahim 18 March 2019 в 16:51
поделиться

2 ответа

Пару заметок о вашей ситуации. В отличие от SVN и других традиционных систем управления исходным кодом, Git в первую очередь предназначен для размещения 1 проекта на репо . Это ни в коем случае не является жестким правилом, есть способы разместить исходный код из более чем одного проекта в одном репозитории Git. Но вот две причины, чтобы рассмотреть возможность использования вместо Git subtree или submodule.

1.) Поскольку Git является распределенной системой управления исходным кодом, репозитории могут увеличиваться в размерах гораздо быстрее. Это может сделать клонирование репо большой болью.

2.) Поскольку Git commit - это фиксация всего репо, а не только подпапки, merge в ветке master (или эквивалент) может стать сложной для новичков. И history ветви может быть более сложным, чтобы понять, что действительно изменилось в наборе коммитов.

Может быть полезно дать команде разработчиков полного стека один репо для клонирования, чтобы работать над всем решением. В вашем случае я мог бы рассмотреть репозиторий «host», который содержит subtrees или submodules для репозиториев Git, содержащих различные компоненты решения полного стека. Это позволило бы разработчику сделать один клон и получить полный исходный код.

Я предлагаю использовать submodule, если компоненты тесно связаны и часто меняются синхронно. Используйте subtree, если компоненты интегрируются реже и / или по заданному графику выпуска.

0
ответ дан benhorgen 18 March 2019 в 16:51
поделиться

Добро пожаловать в Переполнение стека.

Если ваш код зафиксирован и передан, вы почти ничего не можете сделать безопасно, так что не беспокойтесь об ошибках.

Тем не менее, в вашем конкретном случае вам не нужно делать много. Просто создайте новый каталог project-one, используя mkdir project-one. Переместите file-one и file-two в него, используя git mv file-one file-two project-one, а затем подтвердите новые изменения, используя git commit (команда git mv автоматически установит переименования)

0
ответ дан Noufal Ibrahim 18 March 2019 в 16:51
поделиться
Другие вопросы по тегам:

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