On Tue, 26 May 2015, Nicolas Vigier wrote:
As an exemple, I have converted a few patches from tor-browser-31.7.0esr-4.5-1 to this new naming in this git repository: https://github.com/boklm/gecko-dev/branches/all
With all topic branches merged to this tor-browser-31.7.0esr-4.5-1 branch: https://github.com/boklm/gecko-dev/commits/tor-browser-31.7.0esr-4.5-1
I have converted more patches from tor-browser-31.7.0esr-4.5-1 and submitted some of them to Mozilla Try.
I'm planning to do the same on Arthur's esr38 branch this week.
We could also have some helpers scripts to make management of all those branches easier:
a script to merge / list all topic branches that have not yet been merged into their tor-browser-${firefox_version}-${tbb_version}-1 branch.
a script to push / list all branches that need to be pushed for a firefox or tbb version to a remote git repository.
a script to rebase all patches from a previous firefox version to a new firefox version.
I started a script to help doing this, in the tbgit branch of my tor-browser-bundle.git repo: https://gitweb.torproject.org/user/boklm/tor-browser-bundle.git/tree/tools/t...
It has commands to merge topic branches into the main branch, pull / push topic branches to a remote repository, and list Mozilla Try URLs for all branches (stored using git notes).
The tbgit command can be used from a tor-browser.git directory after adding tools/tor-browser-git to the PATH.
$ tbgit tbgit <command> [args]
List of commands:
help display help informations for a command pull pull topic branches from a remote repository push push topic branches to a remote repository merge merge topic branches into a version branch try-push submit topic branches to Mozilla Try server try-results display results from Mozilla Try
$ tbgit pull --help tbgit pull [OPTIONS] <repository>
Pull topic branches from a remote git repository
Fetch a remote git repository and update local branches for a selected firefox and Tor Browser version. The firefox and Tor Browser versions are determined from the currently checked out branch.
options:
--yes assume yes to all questions --list don't pull anything, but list what branches should be pulled --no-fetch don't run git fetch before updating branches
$ tbgit push --help tbgit push [OPTIONS] <repository>
Push topic branches to a remote git repository
Fetch a remote git repository, then push local branches that are not up-to-date on the remote repository, for a selected firefox and Tor Browser version. The firefox and Tor Browser versions are determined from the currently checked out branch.
options:
--yes assume yes to all questions --list don't push anything, but list what branches should be pushed --no-fetch don't run git fetch before pushing branches
$ tbgit merge --help tbgit merge [OPTIONS]
Merge topic branches into the current branch
The current branch should be named after the firefox and Tor Browser versions. The program will exit if the versions cannot be determined from the branch name.
If the branch cannot be merged because of a conflict, the program will exits so you can fix the conflict and commit.
options:
--yes assume yes to all questions --list don't merge anything, but list what needs to be merged --no-edit don't edit merge commit messages
$ tbgit try-push --help tbgit try-push [OPTIONS]
Push topic branches to Mozilla Try server
In the future this command will push topic branches to Mozilla Try, and use git-notes to store the results URL, but it is not implemented yet.
Currently this command lists the branches that have not yet been pushed to Mozilla Try.
The firefox and Tor Browser versions are determined from the currently checked out branch.
options:
--yes assume yes to all questions --list don't submit anything, but list what branches should be submitted
$ tbgit try-results --help tbgit try-results
Display results from Mozilla Try servers
The firefox and Tor Browser versions are determined from the currently checked out branch.
The results URLs are found using git notes from refs/notes/try-push.
Some examples using a clone of https://github.com/boklm/gecko-dev/.
Nothing to merge or push in the tor-browser-31.7.0esr-4.5-1 branch:
$ cat .git/HEAD ref: refs/heads/tor-browser-31.7.0esr-4.5-1 $ tbgit merge --list $ tbgit push --list origin
Now we create a new topic branch, add a commit and use tbgit to check what we need to merge and push:
$ git branch 31.7.0esr/test-branch 31.7.0esr/base $ git checkout 31.7.0esr/test-branch $ echo test > test.txt $ git add test.txt $ git commit -m test $ git checkout tor-browser-31.7.0esr-4.5-1 $ tbgit merge --list 31.7.0esr/test-branch $ tbgit push --list origin 31.7.0esr/test-branch (new)
The try-results command can be used to list Mozilla Try results URLs:
$ tbgit try-results 31.7.0esr/10819-Add-a-pref-privacy.thirdparty.isolate: Not submitted yet
31.7.0esr/11641-change-TBB-directory-structure-to-be-more-like-Firefox: Not submitted yet
31.7.0esr/12146-Make-the-CONNECT-Host-header-the-same-as-the-Request-URI: Not submitted yet
31.7.0esr/12620-TorBrowser-regression-tests-folder: Will not be submitted
31.7.0esr/13900-Remove-3rd-party-HTTP-auth-tokens: https://treeherder.mozilla.org/#/jobs?repo=try&revision=dde9427a5d6b
31.7.0esr/15502-Isolate-blob-URLs-to-first-party: https://treeherder.mozilla.org/#/jobs?repo=try&revision=fa0d343edca8
31.7.0esr/2176-Rebrand-Firefox-to-TorBrowser: https://treeherder.mozilla.org/#/jobs?repo=try&revision=0903e16cd57b
31.7.0esr/2872-Limit-the-number-of-fonts-per-document: https://treeherder.mozilla.org/#/jobs?repo=try&revision=4abfb45bba86
31.7.0esr/2874-Block-Components.interfaces-from-content: https://treeherder.mozilla.org/#/jobs?repo=try&revision=91cd13cf0ac7
31.7.0esr/2875-Limit-device-and-system-specific-CSS-Media-Queries: https://treeherder.mozilla.org/#/jobs?repo=try&revision=32244f089736
31.7.0esr/2949-Make-Intermediate-Cert-Store-memory-only: https://treeherder.mozilla.org/#/jobs?repo=try&revision=139538724d04
31.7.0esr/2950-Make-Permissions-Manager-memory-only: https://treeherder.mozilla.org/#/jobs?repo=try&revision=3f8cb0c1984e
31.7.0esr/3229-Make-content-pref-service-memory-only-clearable: https://treeherder.mozilla.org/#/jobs?repo=try&revision=344873ae1513
31.7.0esr/3547-Block-all-plugins-except-flash: https://treeherder.mozilla.org/#/jobs?repo=try&revision=c75fb4685994
31.7.0esr/3875-Use-Optimistic-Data-SOCKS-variant: https://treeherder.mozilla.org/#/jobs?repo=try&revision=b22d40acd7d8
31.7.0esr/4755-Return-client-window-coordinates-for-mouse-event-screenX-Y: https://treeherder.mozilla.org/#/jobs?repo=try&revision=588ef3e16aca
31.7.0esr/5282-Randomize-HTTP-request-order-and-pipeline-depth: Not submitted yet
31.7.0esr/5715-Make-nsICacheService.EvictEntries-synchronous: https://treeherder.mozilla.org/#/jobs?repo=try&revision=4347c535ef41
31.7.0esr/5741-Prevent-WebSocket-DNS-leak: https://treeherder.mozilla.org/#/jobs?repo=try&revision=155752f22aa0
31.7.0esr/5742-API-allows-you-to-get-the-url-bar-URI-for-a-channel-or-nsIDocument: https://treeherder.mozilla.org/#/jobs?repo=try&revision=7334c7aafc24
31.7.0esr/5856-Do-not-expose-physical-screen-info-via-window-window.screen: https://treeherder.mozilla.org/#/jobs?repo=try&revision=875cbad7b056
31.7.0esr/6253-Add-canvas-image-extraction-prompt: https://treeherder.mozilla.org/#/jobs?repo=try&revision=1dc12a786a61
31.7.0esr/6539-Isolate-the-Image-Cache-per-url-bar-domain: https://treeherder.mozilla.org/#/jobs?repo=try&revision=0e2601a370f6
31.7.0esr/6564-Isolate-DOM-storage-to-first-party-URI: https://treeherder.mozilla.org/#/jobs?repo=try&revision=9fb0ae49608b
31.7.0esr/6786-Do-not-expose-system-colors-to-CSS-or-canvas: https://treeherder.mozilla.org/#/jobs?repo=try&revision=6a15e63167d5
31.7.0esr/8312-Remove-This-plugin-is-disabled-barrier: https://treeherder.mozilla.org/#/jobs?repo=try&revision=17f9a6c28f68
31.7.0esr/9173-Change-the-default-Firefox-profile-directory-to-be-TBB-relative: Not submitted yet
31.7.0esr/9701-Prevent-ClipBoardCache-from-writing-to-disk: Not submitted yet
31.7.0esr/9837-Disable-uninstall-helper.exe-on-Win32: Will not be submitted
31.7.0esr/Omnibox-Add-DDG-Startpage-Disconnect-Youtube-Twitter-remove-Amazon-eBay-bing: Not submitted yet
31.7.0esr/TB2-Provide-an-observer-event-to-close-persistent-connections: https://treeherder.mozilla.org/#/jobs?repo=try&revision=93af45d5111a
31.7.0esr/base: https://treeherder.mozilla.org/#/jobs?repo=try&revision=5bbe47119ac0
31.7.0esr/enable-browser.ini: Will not be submitted
31.7.0esr/enable-mochitest.ini: Will not be submitted
31.7.0esr/mingw-fixes: Not submitted yet
31.7.0esr/mozconfigs: Will not be submitted
31.7.0esr/preference-overrides: Not submitted yet
31.7.0esr/test-branch: Not submitted yet