A solution to this is to use `git phab attach -n $patches`. The -n option
makes the patches independent of other patches, so they do not get added to
any stack.

Here are some example workflows which avoid making large stacks of
unrelated patches:

* Have series of 3 patches, 2 independent patches, series of 8 patches
  - for example purposes, each commit hash is a single letter so that the
series-based patch grouping is: abc d e fghijklm

SOLUTION A (using commit ranges):
* submit first group: `git phab attach a~1..c`
* use git log to check commit hash ids since they have now changed
* submit individual patches: `git phab attach -n d~1..e`
* use git log to check commit hash ids since they have now changed
* submit first patch of second group separately to avoid dependency: `git
phab attach -n f`
* use git log to check commit hash ids since they have now changed
* submit remainder of second group: `git phab attach f..m`


SOLUTION B (use a cherry-picking branch):
* create and checkout branch: `git checkout -b somebranch origin/master`
* cherry-pick patches for first series to branch: `git cherry-pick a~1..c`
* submit series of patches: `git phab attach HEAD~3`

* create and checkout branch: `git checkout -b somebranch2 origin/master`
* cherry-pick individual patches to branch: `git cherry-pick c~1..d`
* submit series of patches independently: `git phab attach -n HEAD~2`

* create and checkout branch: `git checkout -b somebranch3 origin/master`
* cherry-pick patches for second series to branch: `git cherry-pick f~1..m`
* submit series of patches: `git phab attach HEAD~8`


SOLUTION C (I fucked up // I'm lazy // I like the web ui)
* submit all patches using git-phab as you've been doing all along
* using a for loop, manually accomplish the following in your web browser
for each patch on phab in list "d e f":
  - click "Edit Related Revisions..." on right sidebar
  - remove unrelated child/parent revisions
  - add new dependencies if you have just removed patches from the middle
of a related stack



There are other workflows, but these are the ones which I typically use.

On Thu, Jan 17, 2019 at 12:42 PM Cedric Bail <ced...@ddlm.me> wrote:

> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Thursday, January 17, 2019 2:31 AM, Xavi Artigas <
> xavierarti...@gmail.com> wrote:
> > Just so you all know (I am looking at nobody in particular).
>
> <3
>
>
> > When you submit a long stack of unrelated patches to Phab, to test if a
> > single patch works I need to apply all the previous ones, OR I need to
> > apply the dependencies one by one, but then I need to find out which
> > patches in the stack are really dependencies and which are not.
>
> Technically they are depending on each other as they use functions
> provided by the patch before them. Anyway, you know you can use "git phab
> apply D0000" and it will apply the patch and all its dependencies in the
> right order.
>
> For more information on git phab:
> https://phab.enlightenment.org/w/arcanist/ (Yes, I know the page title
> says arcanist, but it is actually about git phab).
>
> > It is much simpler if you submit as a stack patches which really depend
> on
> > one another using: arc diff first-patch
> > For example, to submit all commits in a branch that departed from master:
> > arc diff master
> > To submit only the last commit: arc diff HEAD^
> > To submit only the last three commits: arc diff HEAD~3
>
> I don't like arc as it squash all commits and loose the logic of patches
> being separated. It also far from being as nice to use as git phab,
> especially the php part.
>
>
> > Please, think of the kittens.
>
> https://i.imgur.com/e5dYM5Z.jpg
>
>
> > Xavi
> > p.s. I am sure git phab can do the same thing.
>
> git phab actually preserve the independence of each patches, so if you do
> the equivalent of HEAD~3, you always get 3 independent patches with
> dependencies on each other uploaded instead of what arcanist does that
> squash them all into one patch in phab.
>
> Cedric_______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>

_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to