2008-12-02 7 views
4

Il n'est pas rare pour moi d'enregistrer un patch, de l'insérer dans ma branche de mise en scène puis de réaliser que j'ai fait quelque chose de petit et de stupide dans un message de journalisation ou quelque chose d'aussi trivial. t exiger (à mon avis) un nouveau patch.darcs modif-record workflow

Dans ces cas, je me sers:

darcs amend-record 

Pour mettre à jour le patch. Mais quand je re-tirez darcs traitera les correctifs comme étant contradictoires, donc je finis par avoir unrecord et inverser le patch dans la branche de transit, et puis le tirer à nouveau.

Y a-t-il une commande ou une option darcs qui me permettra de tirer plus facilement un patch modifié?

Répondre

3

Vous pouvez essayer d'abord darcs unpull sur la branche de transit puis en tirant dans le patch modifié.

5

Pas vraiment. Amender un patch le transforme en un patch différent, même si le nom est le même qu'avant. modifier-enregistrer est normalement utilisé uniquement dans le dépôt local, avant que le correctif ait été poussé/tiré ailleurs. Si le correctif a été déplacé vers d'autres repos, vous devrez l'oblitérer dans ceux-ci, et retirez la version modifiée. (obliterate est l'orthographe moderne de "unpull").

Alternativement, utilisez la commande rollback; ceci est plus convivial quand les repos en question sont publics et utilisés par plusieurs développeurs.

+0

Cela semble être encore plus difficile si vous voulez synchroniser un repo distant (comme sur ), sur lequel vous avez l'habitude d'appuyer. Dites, si ce n'est pas un seul patch, alors comment faites-vous facilement que le repo distant efface tous les patchs qui ne sont pas dans un certain patch local? (A faire avant de pousser les patchs modifiés.) Je pense que l'une des façons serait de mettre une copie du nouveau repo local sur le web, et 'ssh HUB obliterate' avec quelques options se référant à la nouvelle copie qui font il sélectionne les patches pas dans le repo de référence ... –