Discussion:
The tree has been reformatted now!
Andi-Bogdan Postelnicu
2018-11-30 14:46:32 UTC
Permalink
Hello all

Starting with revision 6f3709b3878117466168c40affa7bca0b60cf75b <https://hg.mozilla.org/mozilla-central/rev/6f3709b3878117466168c40affa7bca0b60cf75b> mozilla-central has been formatted using ./mach clang-format following the Google coding style.
In order to diminish as much as possible the effort of merging pre-format patches into our newly formatted repo we devised the following plan for the two SCMs that we use:

Mercurial

Please make sure you run ‘mach bootstrap’ and allow the install of the ‘format-source’ extension before pulling the reformat changeset. This extension provides a simple and behind-the-curtains way on how you can integrate un-formatted code into a formatted repo.

Example
Let’s assume the patch that need rebasing is at rev: 1000 and mozilla-central is at rev: 2000.

hg rebase -b 1000 -d 2000

Or in case you want to have a more verbose output:

hg rebase -b 1000 -d 2000 -debug

The extension registers at the merge level and it will format both sides and after that uses the original merge tool to combine for the final result.

For more detailed information on the process please also see this <https://docs.google.com/document/d/13AwAsvKMhH0mflDlfatBqn6LmZHiQih76oxM4zfrPl4/edit?usp=drive_web&ouid=110354964518198126513> document.

Git
Courtesy of Ehsan and Emilio there are two ways that help with the merge:
Ehsan’s implementation <https://github.com/ehsan/clang-format-reformat-branch>
Emilio’s implementation <https://github.com/emilio/clang-format-merge>
For your convenience, the parent changeset of the reformat changeset has been tagged in Mercurial as “PRE_TREEWIDE_CLANG_FORMAT”. This will allow easily updating to that version using the following command for example when rebasing local changes:

hg up -r PRE_TREEWIDE_CLANG_FORMAT


Hope this transition goes smooth as possible but if something comes up and you need assistance please ping Andi on IRC.

Many thanks,
Ehsan, Sylvestre and Andi
Andi-Bogdan Postelnicu
2018-11-30 17:20:18 UTC
Permalink
Hello all,

I’m coming back with a followup email since I don’t think that in the previous email we mentioned what is the minimum version that should be used for rebasing.

o changeset: 501271:bf92aff5b93d
| tag: tip
| fxtree: central
| user: Andi-Bogdan Postelnicu <***@mozilla.com>
| date: Fri Nov 30 14:04:46 2018 +0200
| summary: Bug 1511285 - Make 'mach clang-format' more efficient when outputting to stdout. r=ehsan, a=aryx
|
o changeset: 501270:3acb179a1759
| user: Ehsan Akhgari <***@mozilla.com>
| date: Fri Nov 30 06:32:29 2018 -0500
| summary: Bug 1511319 - Ensure that tools/clang-tidy/test doesn't get reformatted using clang-format; r=sylvestre a=Aryx
|
o changeset: 501269:4a8721265f7e
| user: Andi-Bogdan Postelnicu <***@mozilla.com>
| date: Fri Nov 30 13:25:44 2018 +0200
| summary: Bug 1511181 - Quick fix for .hg-format-source that has an empty line. r=ehsan, a=aryx
|
@ changeset: 501268:6f3709b38781
| user: Sylvestre Ledru <***@mozilla.com>
| date: Fri Nov 30 11:46:48 2018 +0100
| summary: Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
|
o changeset: 501267:2ac59ec6f8de
| user: Sylvestre Ledru <***@mozilla.com>
| date: Fri Nov 30 10:46:09 2018 +0100
| summary: Added tag PRE_TREEWIDE_CLANG_FORMAT for changeset 58a0412e1557

We have the above ‘hg log -G’, where we can see that the change-set that doesn’t have the format is `2ac59ec6f8de` and the one that introduces the tree formatting ‘6f3709b38781’, but after that change-set we did a couple of more fixes in order to resolve the fallout of the format.
In conclusion in order to be able to rebase without any issues please use any change-set greater than ‘bf92aff5b93d’.

Many thanks,
Andi
Post by Andi-Bogdan Postelnicu
Hello all
Starting with revision 6f3709b3878117466168c40affa7bca0b60cf75b <https://hg.mozilla.org/mozilla-central/rev/6f3709b3878117466168c40affa7bca0b60cf75b> mozilla-central has been formatted using ./mach clang-format following the Google coding style.
Mercurial
Please make sure you run ‘mach bootstrap’ and allow the install of the ‘format-source’ extension before pulling the reformat changeset. This extension provides a simple and behind-the-curtains way on how you can integrate un-formatted code into a formatted repo.
Example
Let’s assume the patch that need rebasing is at rev: 1000 and mozilla-central is at rev: 2000.
hg rebase -b 1000 -d 2000
hg rebase -b 1000 -d 2000 -debug
The extension registers at the merge level and it will format both sides and after that uses the original merge tool to combine for the final result.
For more detailed information on the process please also see this <https://docs.google.com/document/d/13AwAsvKMhH0mflDlfatBqn6LmZHiQih76oxM4zfrPl4/edit?usp=drive_web&ouid=110354964518198126513> document.
Git
Ehsan’s implementation <https://github.com/ehsan/clang-format-reformat-branch>
Emilio’s implementation <https://github.com/emilio/clang-format-merge>
hg up -r PRE_TREEWIDE_CLANG_FORMAT
Hope this transition goes smooth as possible but if something comes up and you need assistance please ping Andi on IRC.
Many thanks,
Ehsan, Sylvestre and Andi
Emilio Cobos Álvarez
2018-11-30 18:16:04 UTC
Permalink
And https://hg.mozilla.org/mozilla-central/rev/138f65958545 if you use
the git driver if you don't want sadness :)

-- Emilio
Post by Andi-Bogdan Postelnicu
Hello all,
I’m coming back with a followup email since I don’t think that in the previous email we mentioned what is the minimum version that should be used for rebasing.
o changeset: 501271:bf92aff5b93d
| tag: tip
| fxtree: central
| date: Fri Nov 30 14:04:46 2018 +0200
| summary: Bug 1511285 - Make 'mach clang-format' more efficient when outputting to stdout. r=ehsan, a=aryx
|
o changeset: 501270:3acb179a1759
| date: Fri Nov 30 06:32:29 2018 -0500
| summary: Bug 1511319 - Ensure that tools/clang-tidy/test doesn't get reformatted using clang-format; r=sylvestre a=Aryx
|
o changeset: 501269:4a8721265f7e
| date: Fri Nov 30 13:25:44 2018 +0200
| summary: Bug 1511181 - Quick fix for .hg-format-source that has an empty line. r=ehsan, a=aryx
|
@ changeset: 501268:6f3709b38781
| date: Fri Nov 30 11:46:48 2018 +0100
| summary: Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
|
o changeset: 501267:2ac59ec6f8de
| date: Fri Nov 30 10:46:09 2018 +0100
| summary: Added tag PRE_TREEWIDE_CLANG_FORMAT for changeset 58a0412e1557
We have the above ‘hg log -G’, where we can see that the change-set that doesn’t have the format is `2ac59ec6f8de` and the one that introduces the tree formatting ‘6f3709b38781’, but after that change-set we did a couple of more fixes in order to resolve the fallout of the format.
In conclusion in order to be able to rebase without any issues please use any change-set greater than ‘bf92aff5b93d’.
Many thanks,
Andi
Post by Andi-Bogdan Postelnicu
Hello all
Starting with revision 6f3709b3878117466168c40affa7bca0b60cf75b <https://hg.mozilla.org/mozilla-central/rev/6f3709b3878117466168c40affa7bca0b60cf75b> mozilla-central has been formatted using ./mach clang-format following the Google coding style.
Mercurial
Please make sure you run ‘mach bootstrap’ and allow the install of the ‘format-source’ extension before pulling the reformat changeset. This extension provides a simple and behind-the-curtains way on how you can integrate un-formatted code into a formatted repo.
Example
Let’s assume the patch that need rebasing is at rev: 1000 and mozilla-central is at rev: 2000.
hg rebase -b 1000 -d 2000
hg rebase -b 1000 -d 2000 -debug
The extension registers at the merge level and it will format both sides and after that uses the original merge tool to combine for the final result.
For more detailed information on the process please also see this <https://docs.google.com/document/d/13AwAsvKMhH0mflDlfatBqn6LmZHiQih76oxM4zfrPl4/edit?usp=drive_web&ouid=110354964518198126513> document.
Git
Ehsan’s implementation <https://github.com/ehsan/clang-format-reformat-branch>
Emilio’s implementation <https://github.com/emilio/clang-format-merge>
hg up -r PRE_TREEWIDE_CLANG_FORMAT
Hope this transition goes smooth as possible but if something comes up and you need assistance please ping Andi on IRC.
Many thanks,
Ehsan, Sylvestre and Andi
_______________________________________________
dev-platform mailing list
https://lists.mozilla.org/listinfo/dev-platform
Masatoshi Kimura
2018-12-01 10:25:05 UTC
Permalink
Unfortunately, the ‘format-source’ extension did not work for me. Please
see <https://bugzilla.mozilla.org/show_bug.cgi?id=1511594>.
Post by Andi-Bogdan Postelnicu
Hello all
Starting with revision 6f3709b3878117466168c40affa7bca0b60cf75b <https://hg.mozilla.org/mozilla-central/rev/6f3709b3878117466168c40affa7bca0b60cf75b> mozilla-central has been formatted using ./mach clang-format following the Google coding style.
Mercurial
Please make sure you run ‘mach bootstrap’ and allow the install of the ‘format-source’ extension before pulling the reformat changeset. This extension provides a simple and behind-the-curtains way on how you can integrate un-formatted code into a formatted repo.
Example
Let’s assume the patch that need rebasing is at rev: 1000 and mozilla-central is at rev: 2000.
hg rebase -b 1000 -d 2000
hg rebase -b 1000 -d 2000 -debug
The extension registers at the merge level and it will format both sides and after that uses the original merge tool to combine for the final result.
For more detailed information on the process please also see this <https://docs.google.com/document/d/13AwAsvKMhH0mflDlfatBqn6LmZHiQih76oxM4zfrPl4/edit?usp=drive_web&ouid=110354964518198126513> document.
Git
Ehsan’s implementation <https://github.com/ehsan/clang-format-reformat-branch>
Emilio’s implementation <https://github.com/emilio/clang-format-merge>
hg up -r PRE_TREEWIDE_CLANG_FORMAT
Hope this transition goes smooth as possible but if something comes up and you need assistance please ping Andi on IRC.
Many thanks,
Ehsan, Sylvestre and Andi
_______________________________________________
dev-platform mailing list
https://lists.mozilla.org/listinfo/dev-platform
Loading...