web-dev-qa-db-fra.com

"Pas une révision de tête!" en mercure Hg

Je travaille dans une petite organisation, seulement deux développeurs et nous utilisons le contrôle de version Mercurial tortoisehg-2.2.2-hg-2.0.2-x86. Je suis nouveau sur Mercurial.

Considérez programmerA, programmerB.

Dans programerA machine, j'ai créé un référentiel et un client avec le nom "EFSL". programmerB est simplement un client avec le nom "Uthaya Kumar" pointant vers programmerA dépôt machine.

Lorsque je tire un ensemble de modifications dans la machine programmerA, il crée une nouvelle branche et affiche également "Not a head revision!" erreur dans le répertoire de travail et le référentiel.

Dans programmerB c'est très bien.

Veuillez voir les captures d'écran ci-dessous.

Merci d'avance.

Screen Shot 1Screen Shot 2Screen Shot 3

47
Uthay

Examinez la première capture d'écran et voyez que la ligne du haut indique 8+ dans la colonne Rev. Cela signifie que votre copie de travail est basée sur la révision 8. Vous pouvez suivre la ligne vers le bas et voir également qu'elle se joint à la révision 8 qui indique la même chose.

Il existe deux façons de résoudre ce problème selon que vous avez apporté des modifications ou non.

  • Si vous n'avez apporté aucune modification, vous pouvez cliquer avec le bouton droit sur la révision 13 et sélectionner Mettre à jour .... pour mettre à jour la dernière modification.

  • Si vous avez apporté des modifications, vous devez valider ces modifications, puis cliquer avec le bouton droit sur la révision 13 et sélectionner Fusionner avec local ... qui affiche un assistant pour gérer la fusion.

Dans votre dernière capture d'écran, il semble que vous n'ayez pas du tout de copie de travail, vous devez donc utiliser la procédure de mise à jour ci-dessus pour effectuer la mise à jour vers la révision 13.

Vous pouvez faire en sorte que update se produise automatiquement en modifiant un paramètre dans TortoiseHg:

  1. Sélectionnez Fichier> Paramètres dans le Workbench
  2. Choisissez où vous souhaitez modifier le paramètre en sélectionnant l'onglet approprié en haut. Les choix sont globaux pour l'utilisateur ou uniquement pour ce référentiel
  3. Sélectionnez Workbench dans la liste de gauche
  4. Dans la section de droite, recherchez une liste déroulante intitulée After Pull Operation
  5. Sélectionnez mise à jour dans la liste

Cela fera une mise à jour au plus tard à chaque fois que vous effectuerez une traction, ce qui évitera le problème dans votre première capture d'écran. Vous devrez toujours effectuer une fusion manuelle lorsque vous et un autre développeur avez apporté des modifications.

Les autres options de cette liste sont rebase et fetch qui dépendent toutes deux de l'extension appropriée et sont réservées à un usage avancé.

56
Steve Kaye

C'est un comportement parfaitement normal et correct de Mercurial. Votre répertoire de travail est actuellement mis à jour vers le changeset 8 "Merge 2". L'opération d'extraction ne modifiera pas le contenu de votre répertoire de travail. Il obtient simplement les ensembles de modifications manquants et les ajoute à votre graphique d'historique. Après avoir tiré, vous travaillez toujours sur l'ensemble de modifications 8. Maintenant, "Pas une révision principale" apparaît pour vous avertir que si vous apportez maintenant des modifications et les validez, vous créerez un nouvel ensemble de modifications dérivé de la révision 8, qui créera effectivement un nouvelle branche. C'est quelque chose que vous pouvez ou ne voulez pas faire. En règle générale, après avoir tiré de nouveaux ensembles de modifications, vous souhaitez mettre à jour votre répertoire de travail vers le dernier ensemble de modifications, en cliquant avec le bouton droit sur le dernier ensemble de modifications et en choisissant Mettre à jour ...

P.S. Vous n'utilisez pas la dernière version de TortoiseHG. Veuillez mettre à jour vers la dernière version. Il contient de nombreuses améliorations et résout de nombreux bugs.

32
Eiver