Mercurial ignore-файл для разработки Eclipse и Android

Я видел образцы файлов игнорирования Mercurial для Visual Studio, среди прочего .

Я только начал экспериментировать с разработкой для Android, и я также использую это время для экспериментов с Mercurial. Итак, мой вопрос: есть ли у кого-нибудь хороший пример .hgignore файла для разработки Eclipse и Android?

Для начала у меня самого есть:

# use glob syntax
syntax: glob

# Ignore patterns
.metadata\
bin\
gen\

Есть ли какие-то другие шаблоны игнорирования, которые следует включить? Следует ли, например, исключить файлы Eclipse .classpath и .project из системы контроля версий?

- Изменить ниже -

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

Немного поэкспериментировав со мной, я, кажется, обнаружил, что предложенных .hgignore, перечисленных выше, мне вполне достаточно. Единственное добавление, которое я сделал, - это одна строка с .settings (это была папка, которая появилась после того, как я запустил Android Tools -> Fix Project Properties). Я также обнаружил (как упоминалось Ry4an), что файлы Eclipse .classpath и .project не должны исключаться.

Однако я не уверен, что этого небольшого файла игнорирования будет достаточно, когда я доберусь до проектов немного большего размера, чем базовые руководства (если он действительно все хорошо, пожалуйста, объясните почему, и вы получите благодарность ). Итак, чтобы резюмировать то, что я ищу:

  • Мне нужен конкретный пример файла .hgignore для проекта Android в Eclipse
  • Файл игнорирования должен быть таким, чтобы всякий раз, когда я проверяю копию репозитория в новом месте, он должен работать сразу (т.е. без необходимости возиться с путями и ссылками, добавлять недостающие файлы и т. Д.)
  • Также объясните, почему ваш включаемый файл выглядит именно так (я хочу понять, почему определенные файлы / каталоги исключены (и почему некоторые обязательно должны быть включены))
  • Если вы включаете исключения для ОС, также укажите это (кстати, я работаю в Windows 7).

person Julian    schedule 09.09.2010    source источник
comment
Обновлен исходный вопрос с дополнительной информацией после добавления награды.   -  person Julian    schedule 13.09.2010
comment
Я бы не стал игнорировать каталог .settings. Если вы обнаружите, что подключаемый модуль Android включает элементы, специфичные для вашей среды (например, жестко заданные пути) в некоторые файлы внутри, то игнорируйте эти файлы по отдельности. Я также предпочитаю не создавать репозиторий вне моей рабочей области, поэтому обычно у меня нет .metadata в моем списке игнорирования (это дает мне гибкость для импорта проектов из нескольких репозиториев, хотя я не уверен, насколько это важно для ты).   -  person Jack Leow    schedule 19.09.2010


Ответы (5)


Файлы eclipse обязательно нужно добавить. Общая рекомендация заключается в добавлении:

  • все, что написано от руки / напечатано
  • минимальное подмножество всего остального, необходимого для создания проекта

Последнее - ваше мнение. Он явно исключает файлы .jar, которые вы создаете самостоятельно, и окончательный .apk, но включает ли он сторонние .jar, которые вы используете? Некоторые люди включают их, но лучше включить файл конфигурации для диспетчера зависимостей, например ivy, который позволяет следующему сборщику автоматически загружать необходимые им требования.

После автоматического создания проекта в моих любимых инструментах я просто выполню такую ​​команду:

hg status --unknown --no-status >> .hgignore

который добавляет список всех неизвестных файлов в .hgignore. Затем я захожу и удаляю вещи, которые хочу сохранить (например, .project), и файлы с подстановочными знаками, которые будут расти братьями и сестрами (например: **. Class)

person Ry4an Brase    schedule 09.09.2010
comment
+1: hg status --unknown --no-status >> .hgignore кажется хорошим трюком, спасибо :) Поскольку я новичок в разработке Android, я, тем не менее, надеялся на исчерпывающий и конкретный пример - как вы указываете, второй пункт из двух является сложной частью . - person Julian; 09.09.2010
comment
Просто для будущих ссылок (и, поскольку было бы обидно, если награда пропадет с опозданием;): хотя и не полностью конкретный, этот ответ предоставил то, что я нашел наиболее полезным. Что касается полного примера, я в конечном итоге использовал то, что написал в исходном посте (и этого кажется достаточно после нескольких недель экспериментов). - person Julian; 29.09.2010
comment
Вы используете глобус или регулярное выражение? - person Brill Pappin; 02.04.2014

Есть очень хороший образец .hgignore для Android по адресу http://androidfragments.blogspot.com/2011/11/hgignore-for-android.html

person codingatty    schedule 12.09.2012

Вот мой hgignore:

syntax: regexp
\.DS_Store
.swo
.swp
.metadata/
/bin/

Хорошая она или нет - отдельный вопрос

person Andrew    schedule 09.09.2010
comment
+1 для конкретного примера. Однако я немного подожду дополнительных ответов / комментариев, прежде чем принять, чтобы лучше понять, хороший он или нет;) - person Julian; 09.09.2010
comment
Разве вам не следует избегать точек в строках 3-5? - person Tim Pietzcker; 13.09.2010
comment
Папка `gen` для Android по крайней мере отсутствует в этой папке, в чем я уверен. - person Julian; 13.09.2010

хорошо, если его проекты Android, чем

local.properties также следует игнорировать

person Fred Grott    schedule 09.09.2010
comment
Я думаю, что local.properties из Android Studio. - person Brill Pappin; 02.04.2014

Я нашел хороший пример .hgignore. Меня устраивает.

#Mercurial Ignore Rules for Android
#Save as .hgignore in the repository base directory and add it to source control.
syntax: glob
*.class
*.apk
*.dex
*.ap_
*.suo

syntax: regexp
^(.*[\\/])?gen[\\/].*
^(.*[\\/])?bin[\\/].*
^(.*[\\/])?obj[\\/].*
^(.*[\\/])?log[\\/].*
^(.*[\\/])?obf[\\/].*
^(.*[\\/])?jars[\\/].*
^(.*[\\/])?jar-sources[\\/].*
^(.*[\\/])?javadoc[\\/].*
^(.*[\\/])?\.svn[\\/].*
^(.*[\\/])?\.metadata[\\/].*
^(.*[\\/])?\.settings[\\/].*

Источник: http://androidfragments.blogspot.ru/2011/11/hgignore-for-android.html

person Andrey Epifantsev    schedule 04.07.2014