2010-09-09 13 views
21

He visto muestras para Mercurial ignorar archivos para Visual Studio, entre otros.Mercurial ignore-file para desarrollo de Eclipse y Android

Acabo de comenzar a jugar con el desarrollo de Android, y también uso este tiempo para experimentar con Mercurial. Así que mi pregunta es: ¿alguien tiene un buen ejemplo de un archivo .hgignore para usar en el desarrollo de Eclipse y Android?

Para empezar Tengo el siguiente mismo:

# use glob syntax 
syntax: glob 

# Ignore patterns 
.metadata\ 
bin\ 
gen\ 

¿Hay otros patrones de ignorar que deben incluirse? ¿Debería, por ejemplo, omitir los archivos Eclipse .classpath y .project del control de versión?

- Editar abajo -

no he conseguido absolutamente las respuestas que esperaba, sin embargo, así que voy a poner una recompensa y tratar de especificar un poco más claro lo que estoy buscando .

Después de experimentar un poco yo mismo, parece haber encontrado que el .hgignore sugerido anteriormente parece ser suficiente. La única adición que he hecho, es una línea con .settings (esta era una carpeta que apareció después de ejecutar Herramientas de Android -> Propiedades del proyecto de reparación). También he encontrado que (como lo menciona Ry4an) que los archivos Eclipse .classpath y .project deben excluirse no.

Sin embargo, estoy seguro de que este pequeño archivo ignorar será suficiente cuando llegue a los proyectos un poco más grandes que los tutoriales básicos (si es que en realidad es todo bien, explique por qué, y obtendrá el crédito) . Entonces, para resumir lo que estoy buscando:

  • Quiero un ejemplo concreto de un archivo .hgignore para un proyecto de Android bajo Eclipse
  • El ignorar el archivo debe ser por lo que cada vez que me la salida una copia del repositorio en una nueva ubicación, debería funcionar de inmediato (es decir, sin tener que meterse con rutas y referencias, agregar archivos perdidos, etc.)
  • Explicar también por qué su archivo de inclusión parece que sí (quiero entender por qué cierto los archivos/directorios están excluidos (y por qué algunos definitivamente deberían incluirse))
  • Si incluye excluye específicos del sistema operativo, por favor, también establecen así (estoy corriendo en Windows 7 por cierto.)
+0

Actualizado la pregunta original con información adicional después de la adición de la recompensa. – Nailuj

+0

No ignoraría el directorio '.settings'. Si descubre que el complemento de Android incluye cosas que son específicas de su entorno (por ejemplo, rutas codificadas) en algunos archivos, ignore esos archivos individualmente. También prefiero no crear un repositorio fuera de mi área de trabajo, por lo que normalmente no tengo '.metadata' en mi lista de ignorados (esto me da la flexibilidad de importar proyectos desde múltiples repositorios, aunque no estoy seguro de cuán importante eso es para ti). –

Respuesta

13

Los archivos de eclipse definitivamente deberían ser agregados.La pauta general es agregar:

  • todo lo que está escrito a mano/mecanografiado
  • el subconjunto mínimo de todo lo necesario para construir el proyecto

Esto último es donde su juicio entra en acción. Claramente excluye los archivos .jar que construye usted mismo y su .apk final, pero ¿incluye los archivos .jar de terceros que usa? Algunas personas sí las incluyen, pero es mejor incluir un archivo de configuración para un administrador de dependencias como 'ivy', que permite al próximo desarrollador descargar los requisitos que necesita automáticamente.

Después de la creación automática de un proyecto en mis herramientas de elección, sólo lo hará un comando como este:

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

que añade la lista de todos los archivos desconocidos a .hgignore. Entonces voy y quitar cosas que quiere guardada (por ejemplo: .project) y archivos de comodín que crecerán hermanos (por ejemplo:. ** clase)

+0

+1: El 'hg status --unknown --no-status >> .hgignore' parece un buen truco, gracias :) Como soy bastante nuevo en el desarrollo de Android, esperaba un ejemplo completo y concreto - Como usted señala, el segundo punto de los dos es la parte difícil. – Nailuj

+0

Solo para futuras referencias (y, como sería una lástima que la recompensa tarde se desperdicie;): a pesar de no ser completamente específico, esta respuesta proporcionó lo que encontré más útil. En cuanto a un ejemplo completo, terminé usando lo que escribí en la publicación original (y eso parece ser suficiente, después de algunas semanas de experimentación). – Nailuj

+0

Excelente, gracias. –

1

bien si sus proyectos androide que

local.properties también deben ser ignorados

+0

Creo que local.properties si desde Android Studio. –

5

Aquí es mi hgignore:

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

Ya se trate de una buena o no es un tema aparte

+0

+1 para un ejemplo específico. Sin embargo, esperaré un poco para obtener más respuestas/comentarios antes de aceptar, para ver si es bueno o no;) – Nailuj

+1

¿No debería estar escapando de los puntos en las líneas 3-5? –

+1

La carpeta 'gen \' específica de Android al menos falta en este caso, de eso estoy seguro. – Nailuj

1

he encontrado un buen ejemplo de .hgignore. Esto funciona para mi.

#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[\\/].* 

Fuente: http://androidfragments.blogspot.ru/2011/11/hgignore-for-android.html

Cuestiones relacionadas