Thanks all of your points. So, option 1 is preferred (Keep the liner commit history). And I agree to regular sync edk2-staging/master to latest edk2/master automatically, but not for each feature branch's rebase.
Jordan, If no objection, can you help to set up this regular sync between edk2-staging/master and edk2/master? If so, you can avoid the frequency request. Samer, I will resolve the conflicts once the regular sync finished. Thanks. Jiaxin > -----Original Message----- > From: El-Haj-Mahmoud, Samer [mailto:samer.el-haj-mahm...@hpe.com] > Sent: Thursday, May 19, 2016 9:27 PM > To: Laszlo Ersek <ler...@redhat.com>; Gao, Liming <liming....@intel.com>; > Wu, Jiaxin <jiaxin...@intel.com>; Li, Ruth <ruth...@intel.com>; Ye, Ting > <ting...@intel.com>; Long, Qin <qin.l...@intel.com>; edk2- > de...@lists.01.org <edk2-de...@ml01.01.org>; Justen, Jordan L > <jordan.l.jus...@intel.com>; Kinney, Michael D > <michael.d.kin...@intel.com>; Leif Lindholm (Linaro address) > <leif.lindh...@linaro.org> > Subject: RE: [edk2] edk2-staging/HTTPS-TLS > > I do have some experience maintaining my branches (in other projects) that > eventually get submitted as pull requests to a master. And I always find it > easier to keep my branch in sync by doing frequent merge form master. I > agree that it probably makes more sense to do this a couple of times a week > (or so) manually, and resolve any merge conflicts, than try to automate it. > > At this point, I am working on enabling the HTTPS/TLS feature, but I need to > do so in a code base that is up-to-date with EDK2 master. So the main issue I > have is merging from (the now falling behind) HTTPS/TLS branch into my > code base (which is tracking EDK2). As Laszlo said, it is already getting mad > because of all of the HTTP fixes in EDK2. > > Thanks, > --Samer > > > -----Original Message----- > From: Laszlo Ersek [mailto:ler...@redhat.com] > Sent: Thursday, May 19, 2016 5:51 AM > To: Gao, Liming <liming....@intel.com>; Wu, Jiaxin <jiaxin...@intel.com>; > El-Haj-Mahmoud, Samer <samer.el-haj-mahm...@hpe.com>; Li, Ruth > <ruth...@intel.com>; Ye, Ting <ting...@intel.com>; Long, Qin > <qin.l...@intel.com>; edk2-devel@lists.01.org <edk2-de...@ml01.01.org>; > Justen, Jordan L <jordan.l.jus...@intel.com>; Kinney, Michael D > <michael.d.kin...@intel.com>; Leif Lindholm (Linaro address) > <leif.lindh...@linaro.org> > Subject: Re: [edk2] edk2-staging/HTTPS-TLS > > On 05/19/16 11:53, Gao, Liming wrote: > > Ersek: > > I remember we discuss Rebase or Merge before. The conclusion is to > > keep the liner history in edk2 project. So, I think rebase is better. > > Okay. > > > If we choose option 1, I suggest to setup mirror task in server and > > auto run regular sync. If the confliction happens, it sends the mail > > to edk dev list and let owner follow up. > > Hmm... I'm not sure about an automated rebase. I always have a number of > downstream branches (in my private repo) that I rebase almost every day to > new master. > > However, occasionally I'm so deep in work that I don't want to rebase for a > week, for example. An automated rebase would be very annoying in such > situations, when I'm in the middle of shuffling around my patches. > > I think it's the owner's responsibility after all. If they are fine with an > automated rebase, so be it; but the automatism should be possible to disable. > > Thanks > Laszlo > > > Thanks > > Liming > >> -----Original Message----- > >> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf > >> Of Laszlo Ersek > >> Sent: Thursday, May 19, 2016 4:31 PM > >> To: Wu, Jiaxin <jiaxin...@intel.com>; El-Haj-Mahmoud, Samer > >> <samer.el- haj-mahm...@hpe.com>; Li, Ruth <ruth...@intel.com>; Ye, > >> Ting <ting...@intel.com>; Long, Qin <qin.l...@intel.com>; edk2- > >> de...@lists.01.org <edk2-de...@ml01.01.org>; Justen, Jordan L > >> <jordan.l.jus...@intel.com>; Kinney, Michael D > >> <michael.d.kin...@intel.com>; Leif Lindholm (Linaro address) > >> <leif.lindh...@linaro.org> > >> Subject: Re: [edk2] edk2-staging/HTTPS-TLS > >> > >> On 05/19/16 05:35, Wu, Jiaxin wrote: > >>> Hi all, > >>> There are two ways to sync HTTPS-TLS branch with EDK2 master: > >>> > >>> 1. Sync all changes in EDK2 master to branch by rebasing the whole > >>> feature branch. Need frequency request to sync edk2-staging/master > >>> to latest edk2/master. This way can also keep branch code go > >>> straight with edk2/master. > >>> > >>> 2. Only sync HTTPS/TLS related patches to branch (e.g. HttpDxe > >>> update). That means to use one stable edk2 tag for > >>> edk2-staging/HTTPS-TLS branch development. By this way, frequency > >>> request to sync edk2-staging/master to latest edk2/master can be > >>> avoided but maybe some bugs fixed in edk2/master can't be synced to > >>> branch timely. > >>> > >>> Both of them are not easy since it's probable that each updates in > >>> edk2 trunk may cause the conflicts with the HTTPS code (HttpDxe > >>> driver and CryptyPkg especially). > >>> > >>> Effort is almost. Which one do you prefer? > >> > >> I'm chiming in here not because I have a direct interest in the > >> HTTPS-TLS feature set, but because this feature branch seems to be > >> the first real-life test case of edk2-staging. I'd like to add three > >> points. > >> > >> (a) The ultimate goal of a staging branch is to be merged into edk2 > >> master when the feature is complete. If you try to save the effort > >> now that would be necessary for rebasing the feature branch, you will > >> go > >> *mad* when you finally want to merge the staging branch into edk2 > >> master. The larger you allow the divergence to grow, the > >> (non-linearly) harder time you will have when you try to do the final > >> merge into edk2 master. So, the trick is to stay sensibly close as > >> possible to edk2 master on the staging branch. > >> > >> For this reason, option (1) is very strongly preferable. Option (2) > >> -- which is called "cherry picking" or "backporting" -- is really > >> only an option for branches that are never meant to be merged back > >> into the master branch. Given that HTTPS-TLS is not such a downstream > >> branch (instead, it is a development, topic branch), option (2) doesn't > apply. > >> > >> (b) For option (1), there are actually two methods, rebasing and merging: > >> > >> 1.1. Rebasing. It has the drawback that it throws away your prior > >> development history on the feature (staging) branch. Many people > >> don't like this. On the other hand, you can do it as frequently as > >> you like, without creating a mess of commit history. > >> > >> Here's a diagram: > >> > >> master final merge > >> *-------*-----*-------*--------*-----------*------*----*------> > >> \ \ \ / > >> \ \ \ / > >> *-*-*-[discont.] *-*-*-[discont.] *-*-*-* > >> feature rebased feature rebased feature > >> > >> > >> 1.2. Merging. It has the benfit that your development history on the > >> feature (staging) branch will be preserved in edk2 master too. On the > >> other hand, you have to be careful about the frequency of > >> master-to-staging merges. If you do it very frequently, you'll end up > >> with a complex history. > >> > >> In the Linux community, merging is preferred, and a master-to-topic > >> merge is advised whenever the master branch receives a feature or a > >> bugfix that is important for the topic branch as well. That is, no > >> spurious merges. > >> > >> Here's a diagram: > >> > >> master final merge > >> back into > >> master *-------*-----*-------*--------*-----------*------*----*------> > >> \ \ \ / > >> \ \ \ / > >> *-*-*-----------------*---*--------*------ *-*-*-* > >> feature ^ merge from master ^ another merge > >> triggered by from master > >> important new stuff > >> in master > >> > >> I think that for edk2 staging branches, both 1.1. (= rebasing staging > >> to > >> master) and 1.2. (= merging master into staging) are appropriate. > >> Both can facilitate the final merge back into master. > >> > >> Option (2) (= cherry-picking patches from master to staging) is *not* > >> appropriate. > >> > >> Thanks > >> Laszlo > >> > >> > >>> > >>> Thanks. > >>> Jiaxin > >>> > >>>> -----Original Message----- > >>>> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf > >>>> Of > >> El- > >>>> Haj-Mahmoud, Samer > >>>> Sent: Thursday, May 19, 2016 6:10 AM > >>>> To: Wu, Jiaxin <jiaxin...@intel.com>; edk2-devel@lists.01.org > >>>> Subject: [edk2] edk2-staging/HTTPS-TLS > >>>> > >>>> Jiaxin, > >>>> > >>>> The HTTPs-TLS branch is behind EDK2 master, and they are quite a > >>>> few conflicts to try to keep up with both. Can you please sync the > >>>> branch from > >>>> EDK2 master? > >>>> > >>>> Thanks, > >>>> --Samer > >>>> > >>>> _______________________________________________ > >>>> edk2-devel mailing list > >>>> edk2-devel@lists.01.org > >>>> https://lists.01.org/mailman/listinfo/edk2-devel > >>> _______________________________________________ > >>> edk2-devel mailing list > >>> edk2-devel@lists.01.org > >>> https://lists.01.org/mailman/listinfo/edk2-devel > >>> > >> > >> _______________________________________________ > >> edk2-devel mailing list > >> edk2-devel@lists.01.org > >> https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel