medley icon indicating copy to clipboard operation
medley copied to clipboard

GITFN glitches

Open masinter opened this issue 3 years ago • 9 comments

prc in medley fails image Matt did a PR from a Fork rather than a Branch.

I tried making a 'loops' clone in a sister folder to medley, but that didn't work. So I made a 'git-loops' clone and that was ok, so that's a workaround.

However, trying to do a 'bbc' branch compare of the 'lmm-loops' branch to the 'main' branch leaves out all of the files that were renamed from the 'src' and 'llibrary-src' and 'truckin-src' to their respective 'sytem', library, truckin directories. They just don't show up. image

masinter avatar Aug 01 '22 05:08 masinter

What is a fork vs. a branch?

On Jul 31, 2022, at 10:07 PM, Larry Masinter @.***> wrote:

prc in medley fails https://user-images.githubusercontent.com/1116587/182075321-4d737da8-1256-4c5a-b8d5-9152b6c369a3.png Matt did a PR from a Fork rather than a Branch.

I tried making a 'loops' clone in a sister folder to medley, but that didn't work. So I made a 'git-loops' clone and that was ok, so that's a workaround.

However, trying to do a 'bbc' branch compare of the 'lmm-loops' branch to the 'main' branch leaves out all of the files that were renamed from the 'src' and 'llibrary-src' and 'truckin-src' to their respective 'sytem', library, truckin directories. They just don't show up.

— Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/870, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQSTUJPIHKAJPLOPCTQBWIDVW5LSVANCNFSM55GGL6LA. You are receiving this because you are subscribed to this thread.

rmkaplan avatar Aug 01 '22 05:08 rmkaplan

Completely different repository with its own origin, living in a different top-level directory.

nbriggs avatar Aug 01 '22 05:08 nbriggs

With the GITFNS set up, that would be a separate “project” with its own pseudohost pointing to its own top-level directory (GIT-MAKE-PROJECT).

But then the bbc command needs to take 2 projects in addition to 2 branches. Or allow each “branch” to be provided as a (branch project) pair.

On Jul 31, 2022, at 10:11 PM, Nick Briggs @.***> wrote:

Completely different repository with its own origin, living in a different top-level directory.

— Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/870#issuecomment-1200715472, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQSTUJL33CDUT6D2JP7YGL3VW5MAZANCNFSM55GGL6LA. You are receiving this because you commented.

rmkaplan avatar Aug 01 '22 05:08 rmkaplan

So the first thing to do is probably, in your checked out medley git tree:

git remote add MattHeffron https://github.com/MattHeffron/medley.git
git remote update

and then you can speak about the differences with, for example:

git diff master MattHeffron/IBM-EGA-fonts

nbriggs avatar Aug 01 '22 05:08 nbriggs

... so you end up linking them together, though you can't push into the MattHeffron remote, but if you check out his branches your git working directory will reflect his repo's state on the given branch. Since his repo is a fork of the medley repo it shares commit history with the github medley repo (and all our repos on our own machines, in as much as they haven't diverged)

nbriggs avatar Aug 01 '22 05:08 nbriggs

The git-hefron directory will track his repo, if he pushesand fetches there. The working-hefron pseudohost will be his local working state. The bbc doesn’t assume that the files are on the local machine, it gets them individually to do the fancy compares. The gwc would compare his git and working directories, as they exist on his machine at a given moment, he could copy things back and forth, then push the git-hefron. I suppose the gwc could also do a cross-project compare, a working in one project with a git in another, if it was locally cloned.

On Jul 31, 2022, at 10:28 PM, Nick Briggs @.***> wrote:

... so you end up linking them together, though you can't push into the MattHeffron remote, but if you check out his branches your git working directory will reflect his repo's state on the given branch. Since his repo is a fork of the medley repo it shares commit history with the github medley repo (and all our repos on our own machines, in as much as they haven't diverged)

— Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/870#issuecomment-1200725762, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQSTUJO2Z4XKOEPBCJBDDILVW5OBHANCNFSM55GGL6LA. You are receiving this because you commented.

rmkaplan avatar Aug 01 '22 05:08 rmkaplan

So given that I have:

briggs@macrobiotic medley % git branch -r
  MattHeffron/IBM-EGA-fonts
  MattHeffron/add-nfs-docs
  MattHeffron/bignum-test-was-wrong-fix
  MattHeffron/compile-color
  MattHeffron/document-conditiongraph
  MattHeffron/fix-hcfiles-dirs
  MattHeffron/master
  MattHeffron/obsolete-evalobj
  MattHeffron/rmk60--GITFNS--sort-out-local-origin
  MattHeffron/rmk61--TEDIT-FILE-for-old-format
  MattHeffron/rmk64
  MattHeffron/rplptr-interp-fix
  MattHeffron/unsafe-modify-less
  origin/HEAD -> origin/master
  origin/add-nfs-docs
  origin/bignum-test-was-wrong-fix
  origin/compile-color
  origin/document-conditiongraph
  origin/fix-hcfiles-dirs
  origin/master
  origin/misc-tweaks
  origin/obsolete-evalobj
  origin/rmk60--GITFNS--sort-out-local-origin
  origin/rmk61--TEDIT-FILE-for-old-format
  origin/rmk64
  origin/rplptr-interp-fix
  origin/unsafe-modify-less

I would have expected to be able to do bbc MattHeffron/IBM-EGA-fonts master -- but it's completely confused by the additional remote -- even bbc master rmk64 fails in GIT-BRANCH-EXISTS? complaining origin/MattHeffron/master is an unknown branch.

nbriggs avatar Aug 01 '22 05:08 nbriggs

What if you don’t have the slash? There may be something lingering in there about trying to decode local/xxx vs origin/xxx

On Jul 31, 2022, at 10:49 PM, Nick Briggs @.***> wrote:

So given that I have:

@.*** medley % git branch -r MattHeffron/IBM-EGA-fonts MattHeffron/add-nfs-docs MattHeffron/bignum-test-was-wrong-fix MattHeffron/compile-color MattHeffron/document-conditiongraph MattHeffron/fix-hcfiles-dirs MattHeffron/master MattHeffron/obsolete-evalobj MattHeffron/rmk60--GITFNS--sort-out-local-origin MattHeffron/rmk61--TEDIT-FILE-for-old-format MattHeffron/rmk64 MattHeffron/rplptr-interp-fix MattHeffron/unsafe-modify-less origin/HEAD -> origin/master origin/add-nfs-docs origin/bignum-test-was-wrong-fix origin/compile-color origin/document-conditiongraph origin/fix-hcfiles-dirs origin/master origin/misc-tweaks origin/obsolete-evalobj origin/rmk60--GITFNS--sort-out-local-origin origin/rmk61--TEDIT-FILE-for-old-format origin/rmk64 origin/rplptr-interp-fix origin/unsafe-modify-less I would have expected to be able to do bbc MattHeffron/IBM-EGA-fonts master -- but it's completely confused by the additional remote -- even bbc master rmk64 fails in GIT-BRANCH-EXISTS? complaining origin/MattHeffron/master is an unknown branch.

— Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/870#issuecomment-1200739119, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQSTUJJPVCNSD4437GZFKH3VW5QP7ANCNFSM55GGL6LA. You are receiving this because you commented.

rmkaplan avatar Aug 01 '22 05:08 rmkaplan

What if you don’t have the slash? There may be something lingering in there about trying to decode local/xxx vs origin/xxx

well we're back to the issue of... from git's perspective, if it doesn't have a slash then it's naming a branch actually in the current repository (and there's no such thing as local/... unless you add a remote named "local") and branches "foo" and "origin/foo" may be at different commits: if you create branch foo, initially there's no "origin/foo" only "foo", and then you do a "git push foo" and it by default sends it to the remote named origin, so now there's a branch "origin/foo", then you commit some more changes to branch foo and want to compare "foo" to "origin/foo" to see what the lisp-ish differences are. You also might want to compare "foo" to "master" or to "origin/master".

A "git remote update" will make sure that your repository's idea of what's in remotes (like origin, and, in my case MattHeffron) will be correct, but doesn't merge the changes into your local branches (if they have a remote counterpart you'll see them referred to as "tracking branches", but they don't track unless you "git pull").

nbriggs avatar Aug 01 '22 22:08 nbriggs