2010-09-09 7 views
21

J'ai vu des exemples pour Mercurial ignorer les fichiers pour Visual Studio, entre autres.Mercurial ignorer le fichier pour le développement Eclipse et Android

Je viens de commencer à jouer avec le développement d'Android, et j'utilise aussi cette fois pour expérimenter avec Mercurial. Donc ma question est: est-ce que quelqu'un a un bon exemple d'un fichier .hgignore à utiliser pour le développement Eclipse et Android?

Pour commencer, j'ai moi-même ce qui suit:

# use glob syntax 
syntax: glob 

# Ignore patterns 
.metadata\ 
bin\ 
gen\ 

Existe-t-il d'autres modèles qui devraient ignorer être inclus? Faut-il par exemple omettre les fichiers Eclipse .classpath et .project dans le contrôle de version?

- Modifier ci-dessous -

Je n'ai pas tout à fait obtenu les réponses que j'espériez encore, donc je vais mettre une prime et essayer de préciser un peu plus clair ce que je suis à la recherche . Après avoir expérimenté un peu moi-même, je semble avoir trouvé que le .hgignore suggéré ci-dessus semble être suffisant. Le seul ajout que j'ai fait, est une ligne avec .settings (c'était un dossier qui est apparu après que j'ai couru Android Tools -> Fixer les propriétés du projet). J'ai également constaté que (comme mentionné par Ry4an) que les fichiers Eclipse .classpath et .project devraient pas être exclus.

Je suis cependant incertain que ce petit fichier ignorer suffira quand j'arriverai à des projets un peu plus grands que les tutoriels de base (si effectivement est tout va bien, expliquez pourquoi, et vous obtiendrez le crédit) . Donc, pour résumer ce que je cherche:

  • Je veux un exemple concret d'un fichier .hgignore pour un projet Android sous Eclipse
  • Le fichier doit être ignorer de sorte que chaque fois que je vérifie une copie du référentiel à un nouvel emplacement, il devrait fonctionner immédiatement (sans avoir à jouer avec des chemins et des références, ajouter des fichiers manquants etc.)
  • Veuillez également expliquer pourquoi votre fichier d'inclusion ressemble à cela (je veux comprendre pourquoi certains les fichiers/répertoires sont exclus (et pourquoi certains devraient certainement être inclus))
  • Si vous incluez OS ne comprend pas spécifiques, s'il vous plaît indiquent également si (je suis en cours d'exécution sur Windows 7 btw.)
+0

Mis à jour la question originale avec des informations supplémentaires après avoir ajouté la générosité. – Nailuj

+0

Je n'ignorerais pas le répertoire '.settings'. Si vous constatez que le plug-in Android inclut des éléments spécifiques à votre environnement (par exemple, des chemins codés en dur) dans certains fichiers, ignorez ces fichiers individuellement. Je préfère également ne pas créer de référentiel hors de mon espace de travail, et donc je n'ai pas typiquement '.metadata' dans ma liste d'ignorés (cela me donne la flexibilité d'importer des projets depuis plusieurs référentiels, même si je ne suis pas sûr de l'importance c'est à vous). –

Répondre

13

Les fichiers d'éclipse devraient définitivement être ajoutés.La règle générale est d'ajouter:

  • tout ce qui est écrit à la main/tapé
  • le sous-ensemble minimal de tout le reste nécessaire pour construire le projet

Ce dernier est là qu'intervient votre jugement. Il exclut clairement les fichiers .jar que vous construisez vous-même et votre .apk final, mais inclut-il les fichiers .jar que vous utilisez? Certaines personnes les incluent, mais il est préférable d'inclure un fichier de configuration pour un gestionnaire de dépendances comme 'ivy' qui permet au prochain constructeur de télécharger automatiquement les exigences dont il a besoin.

Après l'auto-création d'un projet dans mes outils de choix, je vais juste faire une commande comme ceci:

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

qui ajoute la liste de tous les fichiers inconnus .hgignore. Ensuite, je vais et supprimer des choses que je souhaite (ex sauvé: .project) et les fichiers génériques qui pousseront les frères et sœurs (ex:. ** classe)

+0

+1: Le 'statut hg - inconnu - pas de statut >> .hgignore' semble être une bonne astuce, merci :) Comme je suis assez nouveau avec le développement Android, j'espérais cependant un exemple complet et concret - Comme vous le soulignez, le deuxième point des deux est la partie difficile. – Nailuj

+0

Juste pour de futures références (et, comme il serait dommage que la prime soit en retard): même si elle n'est pas complètement spécifique, cette réponse a fourni ce que j'ai trouvé le plus utile. Comme pour un exemple complet, j'ai fini par utiliser ce que j'ai écrit dans le post original (et cela semble être suffisant, après quelques semaines d'expérimentation). – Nailuj

+0

Excellent, merci. –

1

bien si ses projets Android que

local.properties doivent également être ignorés

+0

Je pense local.properties si à partir d'Android Studio. –

5

Voici mon hgignore:

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

Que ce soit un bon ou non est une question distincte

+0

+1 pour un exemple spécifique. J'attendrai cependant un peu plus de réponses/commentaires avant d'accepter, pour mieux dire si c'est un bon ou pas;) – Nailuj

+1

Ne devriez-vous pas échapper aux points dans les lignes 3-5? –

+1

Le dossier 'gen \' spécifique à Android est au moins absent de celui-ci, j'en suis sûr. – Nailuj

1

J'ai trouvé un bon exemple de .hgignore. Ça marche pour moi.

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

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

Questions connexes