… donc je me suis habitué aux choses simples avec Mercurial ( add
, commit
, diff
) et j’ai découvert le fichier .hgignore (yay!) et j’ai eu le coup de créer et de changer de twig ( branch
, update -C
).
J’ai cependant deux grandes questions:
Si je suis dans la twig “Branch1” et que je veux apporter certains changements mais pas tous de la twig “Branch2”, comment ferais-je cela? En particulier si tous les changements sont dans un sous-répertoire. (Je suppose que je pourrais simplement cloner l’ensemble du référentiel, puis utiliser un outil de fusion de répertoires tel que Beyond Compare pour choisir mes éditions. Il semblerait toutefois possible d’isoler les modifications dans un fichier ou un répertoire.)
Commuter entre les twigs avec la update -C
à update -C
semble si facile, je me demande pourquoi je me donnerais la peine d’utiliser le clone
. Je ne peux que penser à quelques raisons (voir ci-dessous). Y a-t-il d’autres raisons qui me manquent?
une. si j’ai besoin d’agir sur deux versions / twigs à la fois (par exemple, faire une différence de performance)
b. pour une sauvegarde ( clone
le référentiel sur un lecteur réseau dans un emplacement physiquement différent)
c. pour faire le choix et fusionner comme je l’ai mentionné ci-dessus.
J’utilise le clone pour:
La première utilisation est assez rare pour moi – surtout quand j’essaie une idée que je pourrais vouloir totalement abandonner. Si je veux fusionner, je veux fusionner TOUS les changements. Ce type de twigment sert principalement à suivre les différentes twigs des développeurs afin de ne pas les perturber. Juste pour clarifier ce dernier point:
Pour les twigs d’entités ou les twigs à durée de vie plus longue, j’utilise des twigs nommées qui sont plus facilement partagées entre des référentiels sans fusion. Il se sent aussi “mieux” quand vous voulez fusionner sélectivement.
Fondamentalement, je le regarde de cette façon:
C’est ma prise, mais c’est vraiment une question de politique.
Pour la question 1, vous devez être un peu plus clair sur ce que vous entendez par “changements”. Lequel de ces mots voulez-vous dire:
Si vous parlez de l’article 1, vous devriez examiner l’extension de la transplantation , en particulier l’idée de choisir quelques modifications.
Si vous voulez dire article 2, vous feriez ce qui suit:
hg revert -r --include
pour modifier le contenu de ces fichiers comme ils le sont sur l’autre twig. hg commit
pour valider ces modifications sur la twig en tant que nouvel ensemble de modifications. Quant à la question 2, je n’utilise jamais de clones de référentiel pour me twigr, donc je ne sais pas. J’utilise des twigs nommées ou des twigs anonymes (parfois avec des signets).
J’ai une autre option pour vous: les files d’attente Mercurial.
L’idée est d’avoir une stack de patches (pas de commits, de “vrais” patches) sur votre répertoire de travail actuel. Vous pouvez ensuite append ou supprimer les correctifs appliqués, en append un, le supprimer, en append un autre, etc. Un seul correctif ou un sous-ensemble de ces derniers devient une nouvelle “fonctionnalité” comme vous le souhaitez probablement avec les twigs. Après cela, vous pouvez appliquer le patch comme d’habitude (car c’est un changement). Les twigs sont probablement plus utiles si vous travaillez avec quelqu’un d’autre?