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>