Paul C. Anagnostopoulos via llvm-dev
2021-Apr-08 18:04 UTC
[llvm-dev] I've intertwined two branches
I'm sorry, I don't understand your first paragraph. When I ask for a
list of commits at GitHub, I see what I've included below. I'm also
confused by 'origin/lists'. Why would there be a 'lists' branch
on origin?
. . .
<https://github.com/llvm/llvm-project/commit/6fccfd7cbdca0c1184cdb77f92329534ffde544c>
[InstCombine] add icmp with no-wrap add tests; NFC
<https://github.com/llvm/llvm-project/commit/6fccfd7cbdca0c1184cdb77f92329534ffde544c>
rotateright
<https://github.com/llvm/llvm-project/commits?author=rotateright>
committed 5 hours ago
[TableGen] Make behavior of list slice suffix consistent across all
v…
<https://github.com/llvm/llvm-project/commit/14580ce2fdd1898d130b20d9eb21bc4281868e7c>
Paul C. Anagnostopoulos committed 5 hours ago
[TableGen] Add support for the 'assert' statement in multiclasses
<https://github.com/llvm/llvm-project/commit/3b9a15d910a8c748b1444333a4a3905a996528bc>
Paul C. Anagnostopoulos committed 5 hours ago
[CodeGen][AArch64] Fix isel crash for truncating FP stores
<https://github.com/llvm/llvm-project/commit/1206313f82f819381055dc730294ef50b3af63c9>
david-arm
<https://github.com/llvm/llvm-project/commits?author=david-arm>
committed 5 hours ago
On 4/8/2021 1:25 PM, David Lloyd wrote:> According to that log, neither `lists` nor `assert` appear on your
> GitHub instance with those commit IDs (if you had successfully pushed
> `lists`, you should expect `lists` to have the same commit ID as
> `origin/lists`, which does not appear in your log at all).
>
> And it's worth noting that amending a commit does not change the
> commit date, unless you explicitly tell it to do so. You can see the
> separate authorship and commit dates using `git log --pretty=fuller`.
> But what you see in annotations is probably the authorship date.
>
> On Thu, Apr 8, 2021 at 12:10 PM Paul C. Anagnostopoulos
> <paul at windfall-software.com <mailto:paul at
windfall-software.com>> wrote:
>
> But two things are confusing. I only pushed the 'lists' branch,
> not the 'assert' branch, yet both revisions are up on GitHub. I
> suppose I should be careful and say that if I pushed 'assert',
I
> don't know how I did it.
>
> Also, if you check the dates on the changed lines in the various
> files, they are dated April 5 for 'lists' and April 1 for
> 'assert'. But I amended the commit on the 'lists'
branch today and
> then pushed it.
>
> On 4/8/2021 1:00 PM, David Lloyd wrote:
>> Branches are just a pointer to a commit ID. This just means that
>> your local `main`, `lists`, and `assert` branches all point to
>> the same commit ID, which is OK. Pushing one does not push the
>> others. When you push a branch e.g. `lists` via `git push origin
>> lists`, what you are doing is telling the remote server
"create
>> or change the branch (pointer) on your end called `lists` to
>> refer to the same commit ID as my local branch `lists`". It
also
>> pushes the commits to the server (but this is strictly additive -
>> nothing is lost by this action). No other remote branches would
>> be affected by this action.
>>
>> It's also possible to push a local branch to a remote branch
with
>> a different name; e.g. `git push origin foo:bar` makes a branch
>> called `bar` on the remote side with the same commit ID as the
>> branch called `foo` on the local side.
>>
>> Overall I don't think you've broken anything, it's just
that the
>> log output is not completely intuitive. It's just listing all
>> the branch names that it knows of which happen to point to the
>> corresponding commit ID in the log.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20210408/fb57de8e/attachment.html>
When working with GitHub, it is common to use the `origin` remote to correspond to your fork of the project. It's idiomatic to use `upstream` to refer to the upstream project. So when you said you pushed up "both revisions" I assume you meant that you pushed one or both branches to your fork, via `origin`. If your `origin` points to the upstream repository, I would expect a "push" to fail unless you have the appropriate permissions to create a new branch on the upstream repository. Since I don't see a `lists` or `assert` branch on the upstream LLVM repository, I would conclude that this must be the case. To answer your question: Git keeps a copy of the branch pointers for every remote that you fetch from or push to (in Git, a "pull" is a "fetch" followed by a "merge"). So when you see `origin/xxx` in your log, that refers to the commit that branch `xxx` on `origin` was pointing to when you last fetched from or pushed to it. If you had pushed anything anywhere, I would expect there to be a branch name in the commit log corresponding to the remote branch (`origin/xxx`) as well as the local one (`xxx`). On Thu, Apr 8, 2021 at 1:05 PM Paul C. Anagnostopoulos < paul at windfall-software.com> wrote:> I'm sorry, I don't understand your first paragraph. When I ask for a list > of commits at GitHub, I see what I've included below. I'm also confused by > 'origin/lists'. Why would there be a 'lists' branch on origin? > > . . . > <https://github.com/llvm/llvm-project/commit/6fccfd7cbdca0c1184cdb77f92329534ffde544c> > > [InstCombine] add icmp with no-wrap add tests; NFC > <https://github.com/llvm/llvm-project/commit/6fccfd7cbdca0c1184cdb77f92329534ffde544c> > rotateright > <https://github.com/llvm/llvm-project/commits?author=rotateright> > committed 5 hours ago > > [TableGen] Make behavior of list slice suffix consistent across all v… > <https://github.com/llvm/llvm-project/commit/14580ce2fdd1898d130b20d9eb21bc4281868e7c> > Paul C. Anagnostopoulos committed 5 hours ago > > [TableGen] Add support for the 'assert' statement in multiclasses > <https://github.com/llvm/llvm-project/commit/3b9a15d910a8c748b1444333a4a3905a996528bc> > Paul C. Anagnostopoulos committed 5 hours ago > > [CodeGen][AArch64] Fix isel crash for truncating FP stores > <https://github.com/llvm/llvm-project/commit/1206313f82f819381055dc730294ef50b3af63c9> > david-arm <https://github.com/llvm/llvm-project/commits?author=david-arm> > committed 5 hours ago > > On 4/8/2021 1:25 PM, David Lloyd wrote: > > According to that log, neither `lists` nor `assert` appear on your GitHub > instance with those commit IDs (if you had successfully pushed `lists`, you > should expect `lists` to have the same commit ID as `origin/lists`, which > does not appear in your log at all). > > And it's worth noting that amending a commit does not change the commit > date, unless you explicitly tell it to do so. You can see the separate > authorship and commit dates using `git log --pretty=fuller`. But what you > see in annotations is probably the authorship date. > > On Thu, Apr 8, 2021 at 12:10 PM Paul C. Anagnostopoulos < > paul at windfall-software.com> wrote: > >> But two things are confusing. I only pushed the 'lists' branch, not the >> 'assert' branch, yet both revisions are up on GitHub. I suppose I should be >> careful and say that if I pushed 'assert', I don't know how I did it. >> >> Also, if you check the dates on the changed lines in the various files, >> they are dated April 5 for 'lists' and April 1 for 'assert'. But I amended >> the commit on the 'lists' branch today and then pushed it. >> On 4/8/2021 1:00 PM, David Lloyd wrote: >> >> Branches are just a pointer to a commit ID. This just means that your >> local `main`, `lists`, and `assert` branches all point to the same commit >> ID, which is OK. Pushing one does not push the others. When you push a >> branch e.g. `lists` via `git push origin lists`, what you are doing is >> telling the remote server "create or change the branch (pointer) on your >> end called `lists` to refer to the same commit ID as my local branch >> `lists`". It also pushes the commits to the server (but this is strictly >> additive - nothing is lost by this action). No other remote branches would >> be affected by this action. >> >> It's also possible to push a local branch to a remote branch with a >> different name; e.g. `git push origin foo:bar` makes a branch called `bar` >> on the remote side with the same commit ID as the branch called `foo` on >> the local side. >> >> Overall I don't think you've broken anything, it's just that the log >> output is not completely intuitive. It's just listing all the branch names >> that it knows of which happen to point to the corresponding commit ID in >> the log. >> >> >-- - DML • he/him -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210408/26f417ad/attachment.html>