2010-06-14 3 views
5

J'ai installé Windows7 sur mon ordinateur et j'ai dû changer toutes les permissions/appropriations - qui ont apparemment "touché" tous mes fichiers, et maintenant tout semble "modifié" (quand je fais "hg status"), mais seuls certains fichiers ont des changements réels. Y at-il une commande que je peux exécuter pour que je "valide" ou "rétablisse" tous les fichiers qui n'ont pas de modification réelle (c'est-à-dire que le texte reste inchangé, même si les attributs de fichier sont modifiés).Comment "rétablir" les fichiers non modifiés avec mercurial?

ajouté:

Je l'ai mis à jour de Windows XP à Win7. Je n'ai pas réellement "copié" quoi que ce soit, le dépôt est le même sur le disque ... c'est juste Windows qui a changé. Après la mise à niveau, je n'avais pas accès à certains fichiers, je devais "prendre possession" afin de récupérer l'accès (d'une manière ou d'une autre, les droits de l'utilisateur n'étaient pas correctement conservés). Voici ce que je reçois:

$ hg stat 
../../test/acceptance/spidermonkey/js1_5/String/regress-179068.as M  
$ hg diff ../../test/acceptance/spidermonkey/js1_5/String/regress-179068.as 

Répondre

3

Je pense que vous avez échoué à obtenir le dépôt .hg correctement copié.

$ hg stat primes.py   # nothing, file is checked in 
$ touch primes.py 
$ hg stat     # still nothing 
$ sudo chown bin primes.py 
$ hg stat     # nothing, the chown didn't make hg care 

Vous devriez probablement hg clone le dépôt et le travail à partir de là.

ajouté: Ugh, la sortie de hg verify et hg summary serait probablement utile pour vous (et affiché ici si vous êtes toujours confondus). Je crains pour votre dépôt et espère que vous avez une sauvegarde (ou être chanceux et vraiment besoin seulement de "tip").

+0

Je l'ai mis à jour de Windows XP à Win7. Je n'ai pas réellement "copié" quoi que ce soit, le dépôt est le même sur le disque ... c'est juste Windows qui a changé. Après la mise à niveau, je n'avais pas accès à certains fichiers, je devais "prendre possession" afin de récupérer l'accès (d'une manière ou d'une autre, les droits de l'utilisateur n'étaient pas correctement conservés). Voici ce que je reçois: $ hg stat ../../test/acceptance/spidermonkey/js1_5/String/regress-179068.as M ../ ../test/acceptance/spidermonkey/js1_5/String/regress-179068.as $ hg diff ../../test/acceptance/spidermonkey/js1_5/String/regress-179068.as $ – Virgil

+0

désolé, je ne sais pas savoir comment corriger le formatage. L'idée est qu'il montre le fichier comme "modifié" même si "diff" ne montre aucune différence. Comment puis-je "réparer" (c'est-à-dire soit "annuler", soit "valider") uniquement les fichiers pour lesquels il n'y a pas de différence? – Virgil

+0

ajouté: ajouté. Je ne suis pas sûr de ce qu'il faut pour que SO fasse savoir à Virgil qu'il y a une mise à jour; Je sais que ça va. – msw

2

Cela m'est arrivé aussi! Je l'ai fixé comme ça ...

  1. Clone du dépôt hg path/to/clone original path/to/clone
  2. Run hg update -C /path/to/clone sur le clone pour vous assurer qu'il est propre.
  3. Run kdiff3 path/to/original path/to/clone
  4. Décocher 'Afficher les fichiers identiques'
  5. Sélectionnez un fichier ou un dossier à synchroniser (ne pas synchroniser le dossier .hg)
  6. Appuyez sur CTRL-1 choisir la version A
  7. Press F6 pour synchroniser
  8. Répéter les étapes 5 à 7 si nécessaire

Nettoyez l'original. Travaillez sur le clone et engagez et poussez.

ou

Nettoyer l'original, et exécuter kdiff3 path/to/clone path/to/original

Questions connexes