Laszlo,
Thanks for your detailed educations:)
For your suggestion (6), can you check this url 
(https://github.com/niruiyu/edk2/compare/master...niruiyu:new_bds)? Is this 
what you want me to do?
What I did is to firstly fork a edk2 in my personal git repository and then 
clone that to my local machine. Then commit all my patches to that and push to 
github.

Thanks,
Ray

-----Original Message-----
From: Laszlo Ersek [mailto:ler...@redhat.com] 
Sent: Wednesday, April 22, 2015 4:42 PM
To: Ni, Ruiyu
Cc: edk2-devel list; Ard Biesheuvel
Subject: Re: [edk2] [Patch V2 00/15] Add pure UEFI Boot Manager

On 04/22/15 07:37, Ruiyu Ni wrote:
> The patches add a pure UEFI Boot Manager to MdeModulePkg.
> Platform can link the BdsDxe driver to NULL class library LegacyBootManagerLib
> to provide legacy boot support.
> A very simple boot manager menu BootManagerMenuApp is provided.
> DriverHealthManagerDxe provides the generic driver health checking logic.
> PCD moving to MdePkg is because these PCDs can map to UEFI spec defined NV 
> variables.
> PCD moving to MdeModulePkg is because these PCDs are implementation specific.
> I tried to fix all the PCD references to resolve the build failure.
> 
> Ruiyu Ni (15):
>   Move PCD from IntelFrameworkModulePkg to MdePkg and MdeModulePkg
>   IntelFrameworkModulePkg: Fix BdsDxe build failure due to PCD movement.
>   Nt32Pkg: Fix build failure due to PCD movement.
>   EdkCompatibilityPkg: Fix build failure due to PCD movement.
>   DuetPkg: Fix build failure due to PCD movement.
>   OvmfPkg: Fix build failure due to PCD movement.
>   EmulatorPkg: Fix build failure due to PCD movement.
>   ArmPlatformPkg: Fix build failure due to PCD movement.
>   CorebootPayloadPkg: Fix build failure due to PCD movement.
>   Vlv2TbltDevicePkg: Fix build failure due to PCD movement.
>   MdeModulePkg: Add UefiBootManagerLib
>   MdeModulePkg: Add BdsDxe driver and PlatformBootManagerNull library.
>   MdeModulePkg: Add BootManagerMenuApp.
>   IntelFrameworkModulePkg: Add LegacyBootManagerLib.
>   MdeModulePkg: Add DriverHealthManagerDxe driver.
> 
>  .../ArmVirtualizationPkg/ArmVirtualizationQemu.dsc |    6 +-
>  .../ArmVirtualizationPkg/ArmVirtualizationXen.dsc  |    2 +-
>  .../PlatformIntelBdsLib/PlatformIntelBdsLib.inf    |    2 +-
>  .../Library/PlatformBdsLib/PlatformBdsLib.inf      |    2 +-
>  DuetPkg/Library/DuetBdsLib/PlatformBds.inf         |   14 +-
>  .../FrameworkHiiOnUefiHiiThunk.inf                 |    4 +-
>  EmulatorPkg/Library/EmuBdsLib/EmuBdsLib.inf        |    4 +-
>  .../IntelFrameworkModulePkg.dec                    |   35 -
>  .../IntelFrameworkModulePkg.dsc                    |    3 +-
>  .../InternalLegacyBootManagerLib.h                 |   66 +
>  .../LegacyBootManagerLib/LegacyBootManagerLib.c    | 1578 +++++++++++
>  .../LegacyBootManagerLib/LegacyBootManagerLib.inf  |   65 +
>  .../Universal/BdsDxe/BdsDxe.inf                    |   14 +-
>  .../BootManagerMenuApp/BootManagerMenu.c           | 1041 +++++++
>  .../BootManagerMenuApp/BootManagerMenu.h           |   60 +
>  .../BootManagerMenuApp/BootManagerMenuApp.inf      |   60 +
>  .../BootManagerMenuApp/BootManagerMenuStrings.uni  |  Bin 0 -> 2756 bytes
>  .../Include/Library/PlatformBootManagerLib.h       |   62 +
>  MdeModulePkg/Include/Library/UefiBootManagerLib.h  |  671 +++++
>  MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf   |    4 +-
>  .../PlatformBootManager.c                          |   67 +
>  .../PlatformBootManagerLibNull.inf                 |   36 +
>  MdeModulePkg/Library/UefiBootManagerLib/BdsBoot.c  | 2858 
> ++++++++++++++++++++
>  .../Library/UefiBootManagerLib/BdsConnect.c        |  322 +++
>  .../Library/UefiBootManagerLib/BdsConsole.c        |  810 ++++++
>  .../Library/UefiBootManagerLib/BdsHotkey.c         | 1104 ++++++++
>  .../Library/UefiBootManagerLib/BdsLoadOption.c     |  982 +++++++
>  MdeModulePkg/Library/UefiBootManagerLib/BdsMisc.c  |  507 ++++
>  .../Library/UefiBootManagerLib/InternalBdsLib.h    |  547 ++++
>  .../Library/UefiBootManagerLib/Performance.c       |  358 +++
>  .../UefiBootManagerLib/UefiBootManagerLib.inf      |  108 +
>  MdeModulePkg/MdeModulePkg.dec                      |   40 +-
>  MdeModulePkg/MdeModulePkg.dsc                      |    8 +
>  MdeModulePkg/Universal/BdsDxe/Bds.h                |  103 +
>  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf           |  101 +
>  MdeModulePkg/Universal/BdsDxe/BdsEntry.c           | 1062 ++++++++
>  MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.c    |   48 +
>  MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.h    |   32 +
>  MdeModulePkg/Universal/BdsDxe/Language.c           |  202 ++
>  MdeModulePkg/Universal/BdsDxe/Language.h           |   30 +
>  .../DriverHealthConfigureVfr.Vfr                   |   39 +
>  .../DriverHealthManagerDxe.c                       |  990 +++++++
>  .../DriverHealthManagerDxe.h                       |  133 +
>  .../DriverHealthManagerDxe.inf                     |   74 +
>  .../DriverHealthManagerStrings.uni                 |  Bin 0 -> 4140 bytes
>  .../DriverHealthManagerVfr.Vfr                     |   38 +
>  .../DriverHealthManagerVfr.h                       |   32 +
>  MdePkg/MdePkg.dec                                  |   11 +
>  Nt32Pkg/Library/Nt32BdsLib/Nt32BdsLib.inf          |    4 +-
>  Nt32Pkg/Nt32Pkg.dsc                                |    8 +-
>  .../Library/QemuBootOrderLib/QemuBootOrderLib.inf  |    4 +-
>  OvmfPkg/OvmfPkgIa32.dsc                            |    8 +-
>  OvmfPkg/OvmfPkgIa32X64.dsc                         |    8 +-
>  OvmfPkg/OvmfPkgX64.dsc                             |    8 +-
>  .../Library/PlatformBdsLib/PlatformBdsLib.inf      |   12 +-
>  Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc            |   14 +-
>  Vlv2TbltDevicePkg/PlatformPkgIA32.dsc              |   14 +-
>  Vlv2TbltDevicePkg/PlatformPkgX64.dsc               |   14 +-
>  58 files changed, 14319 insertions(+), 110 deletions(-)

This looks awesome. Thank you for using git!

Here's some further hints for your consideration -- use whatever you
like from them; I'll just put them out here.

(1) When formatting the patches, please consider adding

  --stat=1000 --stat-graph-width=20

to the git-format-patch command line. This will make sure that all of
the pathnames in the diffstats are displayed in full length (but not
longer than necessary), and the plus/minus signs to the right will still
remain at a reasonable width.

(2) When posting v2, you can incorporate earlier Reviewed-by tags from
the mailing list. Just do a "git rebase -i", set "reword" for the
patches in question, and copy the Reviewed-by tag from the appropriate
email to the end of the commit message. (Assuming you didn't change the
patch for v2 intrusively, which would warrant a new review.)


(3) In .git/config for your repo, you can set

[commit]
        template = /.../tianocore.template

[format]
        signoff = false

and the tianocore.template can have the following contents:

-------v-----------


Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu...@intel.com>
-------^-----------

Two consequences:
(a) "git commit" will prepare the Contributed-under tag automatically
for the commit messages

(b) the Signed-off-by tag will be added to the commit messages when you
*commit* with git-commit, not when you *format* the patches with
git-format-patches. This is useful because it will let you add the
Reviewed-by tags from others *below* the Signed-off-by tag (see (2)),
reflecting chronological order.

(Otherwise, if the Signed-off-by tag is not part of the commit message,
then you can't add the Reviewed-by tags below it during a rebase, and
git-format-patch will place your Signed-off-by at the bottom, underneath
the Reviewed-by tags, which doesn't look that nice.)


(4) When posting a new version of the patchset, it is useful to point
out differences with v1. It can be done in the cover letter, but it's
also possible to list the v1->v2 changes per-patch:

(a) add to .git/config:

[notes]
        rewriteRef = refs/notes/commits

(b) use

  git notes edit COMMIT_ID

to attach such notes to commits (they will not be part of the commit
messages, they won't change history)

(c) pass "--notes" to "git-format patch". Then notes added with (b) will
become part of the emails (in such a section under the commit messages
that humans can read them, but "git am" will skip them -- as I said the
notes are not part of the commit messages).

(d) "git rebase" combines notes when squashing commits, and preserves
notes when just picking.

(e) "git log", "git show", and "gitk" should automatically display the
notes as well. "gitk" even places a small yellow box near the subject
line, to signal that the commit has an attached note.


(5) Consider passing

  -O/.../diff-order.txt

to "git-format patch", with "diff-order.txt" being:

-------------
*.inf
*.h
*.vfr
*.c
-------------

This makes the hunks for files higher up the list appear earlier in the
patch emails.

Looking at INF and header changes earlier than C file changes usually
helps reviewers understand the modifications -- for example if you
introduce a new field in a struct, it's usually easier to see the struct
change first and the referring new code second than the other way around.


(6) Consider cloning edk2 on github.com, and whenever you post a set,
please push that to your github clone, and reference the new branch in
the cover letter. This way reviewers can easily fetch the series, for
testing or just running git commands against it.


As I said, please feel free to ignore any and all of this; it's just
stuff I'd find helpful, going forward. (Seeing that you're interested in
using git.)

Thanks!
Laszlo

>  create mode 100644 
> IntelFrameworkModulePkg/Library/LegacyBootManagerLib/InternalLegacyBootManagerLib.h
>  create mode 100644 
> IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.c
>  create mode 100644 
> IntelFrameworkModulePkg/Library/LegacyBootManagerLib/LegacyBootManagerLib.inf
>  create mode 100644 
> MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.c
>  create mode 100644 
> MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenu.h
>  create mode 100644 
> MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
>  create mode 100644 
> MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuStrings.uni
>  create mode 100644 MdeModulePkg/Include/Library/PlatformBootManagerLib.h
>  create mode 100644 MdeModulePkg/Include/Library/UefiBootManagerLib.h
>  create mode 100644 
> MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManager.c
>  create mode 100644 
> MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibNull.inf
>  create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsBoot.c
>  create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsConnect.c
>  create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsConsole.c
>  create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsHotkey.c
>  create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsLoadOption.c
>  create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/BdsMisc.c
>  create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/InternalBdsLib.h
>  create mode 100644 MdeModulePkg/Library/UefiBootManagerLib/Performance.c
>  create mode 100644 
> MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
>  create mode 100644 MdeModulePkg/Universal/BdsDxe/Bds.h
>  create mode 100644 MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
>  create mode 100644 MdeModulePkg/Universal/BdsDxe/BdsEntry.c
>  create mode 100644 MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.c
>  create mode 100644 MdeModulePkg/Universal/BdsDxe/HwErrRecSupport.h
>  create mode 100644 MdeModulePkg/Universal/BdsDxe/Language.c
>  create mode 100644 MdeModulePkg/Universal/BdsDxe/Language.h
>  create mode 100644 
> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthConfigureVfr.Vfr
>  create mode 100644 
> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.c
>  create mode 100644 
> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.h
>  create mode 100644 
> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
>  create mode 100644 
> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerStrings.uni
>  create mode 100644 
> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.Vfr
>  create mode 100644 
> MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerVfr.h
> 


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to