2010-10-22 19 views
4

Je cherche à supprimer un répertoire du référentiel local et central. J'ai réussi à le faire localement parComment faire pour supprimer le répertoire dans le référentiel central dans Mercurial

 hg remove name_directoriy 
    hg commit 

Cependant, après avoir poussé mes changements au référentiel central du dossier supprimé est toujours dans le dépôt central alors qu'il est parti au niveau local. Comment supprimer le répertoire dans le référentiel central?

Merci

p.s. avec 'supprimer' je veux dire qu'il n'apparaît pas mais il est toujours dans l'histoire

Répondre

4

Si vous voulez dire que vous voulez le retirer de l'historique sur le référentiel central, la réponse est que vous ne pouvez pas - ce n'est pas comment fonctionne le contrôle de version. Si vous voulez dire que votre référentiel distant dispose d'un répertoire de travail dans lequel vous voulez que le (s) fichier (s) disparaissent, vous devrez probablement exécuter hg update sur ce repo distant.

+0

Merci, mais 'hg update' ne fonctionnait pas. d'autres suggestions? – latvian

+1

Y a-t-il un fichier dans 'name_directoriy'? hg ne supprimera pas le répertoire si certains fichiers ignorés y arrivent d'une manière ou d'une autre. –

2

L'idée de référentiel central est étrangère à tous les référentiels sont égaux, donc l'idée d'un référentiel central n'est utile que lorsque vous pensez à votre flux de travail. Cela signifie que le répertoire se trouve dans l'historique de votre copie locale du référentiel et de celle que vous appelez central. Mercurial, comme tous les autres SCM, ne supprime pas les fichiers ou les répertoires de l'historique, car cela irait à l'encontre de son objectif, alors vous feriez mieux de vous demander pourquoi vous voulez le supprimer, est-ce quelque chose qui peut vraiment ne pas être là (comme un répertoire plein de dossiers médicaux sensibles dans un dépôt public) ou est-ce juste un répertoire qui n'est plus nécessaire ?, si la réponse est le dernier, laissez-le tranquille, peut-être dans le futur vous ' ll sera heureux qu'il soit là, si vous avez vraiment besoin de le supprimer, jetez un oeil around here.

+0

Merci pour la relecture. Répondre à la question c'est juste que le répertoire n'est pas nécessaire. Je voudrais supprimer pour éviter la confusion pour les autres (imaginez 10 ou 20 comme ce genre de répertoires) et éliminer la possibilité pour les autres d'utiliser le répertoire «supprimé». Je pense que c'est un argument suffisant pour supprimer ... enfin, je ne veux pas être limité par la technologie. encore une fois, je n'essaie pas de supprimer de l'histoire mais de sorte qu'il n'apparait pas ici – latvian

6

Qu'est-ce que vous voulez faire sur le dépôt distant est:

hg update 

Ce que vous avez décrit ci-dessus supprime les fichiers dans ce répertoire, et pousse alors le changement le supprime les fichiers jusqu'à dépôt distant, mais il ne met pas à jour les fichiers du répertoire de travail sur le référentiel distant. Pour mettre à jour le répertoire de travail sur ce référentiel distant, vous devez exécuter la commande de mise à jour.

Comme tout le monde pointe ces fichiers, bien sûr, ils existent toujours dans l'historique, mais si vous les voulez hors du répertoire de travail c'est le update qui vous manque.

+0

merci de rejouer. La 'mise à jour de hg' ne fait pas le travail. Je peux toujours voir le répertoire supprimé dans le référentiel central – latvian

+0

Lorsque vous dites "le voir dans le référentiel central" où le voyez-vous? Cherchez-vous une interface web (hgweb ou bitbucket)?Regardez-vous le système de fichiers et faire une liste de répertoires? Est-ce que vous voyez réellement les fichiers dans le répertoire ou juste le répertoire? Que dit 'hg summary' quand vous l'exécutez sur le serveur? Enfin, êtes-vous sûr que vous avez exécuté 'hg update' sur un shell sur le serveur distant, pas localement? –

+0

... laissez-moi essayer de répondre mieux que je sais. Il fonctionne sur l'interface web mais je ne suis pas sûr que ce soit hgweb ou bitbucket, comment puis-je le dire? Je suis sur le système de fichiers et fait "dir" pour voir. "hg status" ne s'affiche pas puisque je me suis déjà engagé. Oh je vois, j'ai fait la mise à jour localement mais j'ai besoin de le faire sur le serveur pour que le serveur se synchronise avec le central, correct? ... je vais essayer cela dans le moment et je reviendrai à vous. Merci encore – latvian