Re: Experimental branches

H.J. Lu
2015-01-15T23:20:04Z

On Thu, Jan 15, 2015 at 3:04 PM, Cary Coutant <ccoutant@google.com> wrote:
>>> On my experimental branch, I did "git merge master", then tried to
>>> push. I got this:
>>>
>>> remote: *** This update introduces too many new commits (136), which would
>>> remote: *** trigger as many emails, exceeding the current limit (100).
>>> remote: *** Contact your repository adminstrator if you really meant
>>> remote: *** to generate this many commit emails.
>>> remote: error: hook declined to update
>>> refs/heads/users/ccoutant/two-level-line-tables
>>>
>>> Clearly, I don't want to generate all those commit emails. What do I do instead?
>>>
>>
>> Can you do a rebase first?
>
> But I've already pushed several commits onto the upstream branch.
> Everything I've read about git says don't rebase if you've already
> pushed your branch upstream.
>

I use rebase to keep commit delta small on

https://gcc.gnu.org/git/?p=gcc.git;a=shortlog;h=refs/heads/hjl/pie

After my patch is checked in, rebase will just drop
the same one on my branch.

[hjl@gnu-18 gcc]$ git status
On branch hjl/pie
Your branch is up-to-date with 'origin/hjl/pie'.
nothing to commit, working directory clean
[hjl@gnu-18 gcc]$ git fetch
Enter passphrase for key '/export/home/hjl/.ssh/id_dsa':
remote: Counting objects: 1569, done.
remote: Compressing objects: 100% (747/747), done.
remote: Total 875 (delta 559), reused 307 (delta 117)
Receiving objects: 100% (875/875), 407.12 KiB | 0 bytes/s, done.
Resolving deltas: 100% (559/559), completed with 257 local objects.
From ssh://gcc.gnu.org/git/gcc
b6782dd..368115c gcc-4_8-branch -> origin/gcc-4_8-branch
3147a27..2fc732e gcc-4_9-branch -> origin/gcc-4_9-branch
d53441c..32cf702 master -> origin/master
d53441c..32cf702 trunk -> origin/trunk
[hjl@gnu-18 gcc]$ git rebase origin/master
First, rewinding head to replay your work on top of it...
Applying: Add --enable-default-pie
Applying: Support ENABLE_DEFAULT_PIE in gcc driver
Applying: Update GNU_USER_TARGET_STARTFILE_SPEC
Applying: Compile GCC with -fno-PIE and link with -no-pie
Applying: Don't use -fPIE when compiling crtbegin/end
Applying: Add -no-pie to TOOLS_LIBS for Ada
Applying: Document -no-pie
Applying: Document --enable-default-pie
Applying: Ignore additional messages on Linux/x86 with PIE
Using index info to reconstruct a base tree...
M gcc/testsuite/g++.dg/other/anon5.C
Falling back to patching base and 3-way merge...
No changes -- Patch already applied.
[hjl@gnu-18 gcc]$ git push origin :hjl/pie
Enter passphrase for key '/export/home/hjl/.ssh/id_dsa':
To ssh://hjl@gcc.gnu.org/git/gcc.git
- [deleted] hjl/pie
[hjl@gnu-18 gcc]$ git push -u origin hjl/pie
Enter passphrase for key '/export/home/hjl/.ssh/id_dsa':
Counting objects: 46, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (36/36), done.
Writing objects: 100% (46/46), 6.02 KiB | 0 bytes/s, done.
Total 46 (delta 38), reused 10 (delta 10)
To ssh://hjl@gcc.gnu.org/git/gcc.git
* [new branch] hjl/pie -> hjl/pie
Branch hjl/pie set up to track remote branch hjl/pie from origin.
[hjl@gnu-18 gcc]$

I use merge when I need each merge point on my branch:

https://sourceware.org/git/?p=binutils-gdb.git;a=shortlog;h=refs/heads/users/hjl/linux/master

--
H.J.