Пакет переименования Android Studio - управление Bitbucket и Git

Вы знаете, что иногда в редких случаях разработчик решает реструктурировать структуру упаковки своего проекта. Когда дело доходит до этого, управление этой задачей - это тихий и плавный процесс, если вы делаете это только в Android Studio, и, например, вы можете выполнить шаги в этом решении, которое для меня отлично сработало: Переименование пакета Android Studio

Однако, если вы делаете это в команде и используете, например, команды bitbucket и git, это окажется деликатным вопросом.

В моем случае я приступил к переименованию пакетов с помощью Android Studio на первом этапе. Переименование было успешным до тех пор, пока моя задача не была рассмотрена и отклонена, потому что в битовом пакете при выборе Показать разницу => все изменения в этом запросе на перенос, ну, все файлы в проекте не помечаются как ВЗОЛНОВАННЫЙ или ИЗМЕНЕНО, но фактически отмечены как УДАЛЕНО и ДОБАВЛЕН.

Поэтому, чтобы избежать каких-либо нежелательных последствий, таких как потеря истории файлов, я перешел к переименованию пакета через командную строку Git, что подробно описано в следующих шагах:

  1. CD родительская_папка (package_to_be_renamed)
  2. мерзавецмвpackage_to_be_renamednew_package_name

и если вы хотите добавить подпакет в свой пакет

  1. CD родительский_пакет (package_to_be_renamed)
  2. mkdir имя_нового_пакета
  3. мерзавецДобавлять new_package_name (обратите внимание, что git не добавит пустую папку в репозиторий)
  4. мерзавецмв дочерний_пакет имя_нового_пакета
  5. pwdрезультат=> родительский_пакет / новое_имя_пакета / дочерний_пакет

И чтобы исправить ошибку проекта, не забудьте переименовать файл пакета, заменив старый пакет новым. например, в Android Studio: cmd + shift + r => заменить parent_package.child_package на parent_package.new_package_name.child_package

После нажатия этих изменений битовый пакет снова показывает все файлы как УДАЛЕНО и ДОБАВЛЕН, а при выборе фиксации они отображаются как ВЗОЛНОВАННЫЙ ..

Итак, чтобы убедиться, что все в порядке, я создал ветку от мастера (мастер-тест-переименование) и слил свой repackaging_branch в эту новую ветку. Результат: проект работает ОТЛИЧНО с новым именем пакета. И файлы истории по-прежнему можно отслеживать в Android Studio Git, показать историю.

Сейчас мой вопрос: Почемубитбакетотображаеттофайлыв видеудалено и добавлен (при выборе Показать разницу => все изменения в этом запросе на перенос) ???

Логика Git относительно того, как он обрабатывает перемещение / переименование файлов, нечеткая, и нет гарантии, что история будет сохранена. Если вы абсолютно хотите сохранить историю, не перемещайте папки таким образом. Возможно, удастся переписать всю вашу историю, но это также имеет серьезные оговорки.

Tim Biegeleisen 07.06.2018 13:02

@TimBiegeleisen, продолжая использовать команды git, на самом деле я не потерял никакой истории, и да, это рискованный шаг. Но иногда вы вынуждены обновить название вашего пакета, и это сбивает с толку, когда вы имеете дело с такой задачей, когда вы находите свои файлы удалено. С личной точки зрения, этот перемещение / переименование должен быть немного более понятным, когда вы используете битбакет в качестве примера.

Mohamed Aymen Haddad 07.06.2018 17:26

Я считаю, что Git использует нечеткое сопоставление с образцом для отслеживания имен файлов во время операций перемещения / переименования. Если нет, то это отображается как удаление с последующим добавлением другого файла.

Tim Biegeleisen 07.06.2018 17:33
0
3
370
1

Ответы 1

Вы пробовали просто создать новый каталог, а затем переместить все файлы? Я считаю, что Git распознает «перемещенные» файлы (таким образом, сохраняя историю).

то же самое с мерзавецмв, я просто перемещаю свои файлы в другой каталог, но я все еще не знаю, почему битбакет показывает файлы как удалено

Mohamed Aymen Haddad 07.06.2018 17:17

Другие вопросы по теме