Pouvez-vous arc diff à l'encontre d'un particulier git branch?
Je suis assez nouveau à la fois l'Arcaniste et git. Je voudrais être en mesure de créer un arc diff (Phabricator Différentiel instance à l'aide de l'Arcaniste) contre une branche git que je suis en train de contrôle/de travail (et j'en ai un local de l'onu-poussé à commettre) plutôt que de le maître. Pour moi, la arc docs ne sont pas claires sur ce point. Est-il possible? Comment? Ce serait bien si la réponse travaille pour 2-3 locaux de l'onu-poussé s'engage ainsi.
Aussi "l'arc de l'aide diff" donne:
diff [paths] (svn)
diff [commit] (git, hg)
Supports: git, svn, hg
Generate a Differential diff or revision from local changes.
Under git, you can specify a commit (like HEAD^^^ or master)
and Differential will generate a diff against the merge base of that
commit and HEAD.
Peut-être que j'ai juste besoin de faire "arc diff [valider]" où [valider] est la pointe de la branche cible? Mais j'aimerais être certain, parce que je ne veux pas polluer notre Phabricator instance.
Aussi, je suis heureux de recevoir "vous faites mal" réponses si la réponse explique comment le faire correctement.
Vous devez vous connecter pour publier un commentaire.
En général,
arc diff <branch>
faire ce que vous souhaitez. (Si vous êtes déjà sur la branche, plutôt que d'un local thème de la branche, essayezarc diff origin/<branch>
à la place.)Lorsqu'il est appelé comme cela,
arc
sera effectivement diff contre lamerge-base
de la direction générale de la pointe et le courant s'engager dans la copie de travail, mais en général, c'est ce que vous avez l'intention. Si vous voulez vraiment générer un diff à l'encontre de la direction de la pointe, vous pouvez utiliserarc diff --base git:<branch>
, mais cette diff comprendra des changements qui annuler tout s'engage sur labranch
qui sont des descendants de la branche point, tout commegit diff <branch>..HEAD
serait.Dans tous les cas, vous pouvez utiliser
arc which <commit>
un aperçu de ce quiarc diff
fera. C'est ce qui explique la révision doit être sélectionné, vous montrer la commande pour voir exactement où les changements sont inclus, et d'expliquer pourquoi cette plage est sélectionnée.Vous pouvez également utiliser
arc diff --preview
à générer juste une diff, sans envoi pour examen. Cela vous permettra de prévisualiser les modifications avant de les soumettre à quelqu'un d'autre.Voir aussi:
https://secure.phabricator.com/book/phabricator/article/arcanist_commit_ranges/
arc diff --base 'git:branch-unique(origin/master)'
qui génère un diff à l'encontre de la pointe deorigin/master
de coursearc diff --preview --base git:<branch>
ne correspondent pas aux résultats que je voulais.Evan réponse est généralement préférable car il est plus représentatif de meilleur workflow git pratiques. Je recommande que si vous le pouvez.
Si vous avez besoin d'une solution rapide et travaillent (extraits) de la même branche que vous voulez pousser à, vous pouvez également faire
arc diff HEAD^
ouHEAD~
pour un seul commit, ouarc diff HEAD~N
pour N engage.