(1) Bug fixes, and (2) potential improvements to FileSystem-Git

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

(1) Bug fixes, and (2) potential improvements to FileSystem-Git

Tony Garnock-Jones-5
Hi Jakob, all,

I have a few bug fixes and potential enhancements to FileSystem-Git
ready, but I can't figure out how to add a new github:// repository to
Monticello. I've made my own fork of Squot at the github end, and now I
just need to add it to my image somehow...

The fixes I have are:

 - repair GitReference class >> validateReferenceName: to follow the
   rules in the git docs

 - repair GitRepository >> collectTagsFromLooseRefs when the repo has
   tags including a '/'

 - remove restriction on GitTag's object field: tags can point at any
   git object, not just commits

The potential enhancements I have are:

 - a GitTreeDiffBuilder class which digs into a bit more detail than
   the existing GitDiffCreator; namely, it classifies changes into:
     GitTreeDiffModeChangedItem
     GitTreeDiffNewItem
     GitTreeDiffRenamedItem
     GitTreeDiffSubmoduleChangedItem
     GitTreeDiffTypeChangedItem
     GitTreeDiffChangedItem
     GitTreeDiffDeletedItem

 - GitTaglikeObject >> contributor, which answers author for commits
   and tagger for tags

 - GitTaglikeObject >> messageSummary, which answers the first line of
   the commit message on the assumption that this contains a summary
   of the whole thing (a common convention)

 - GitTree >> followPath:, for digging into a tree when working in a
   git context and not a simulated-filesystem context

 - GitTreeEntry >> entryCode, answering something analogous to
   GitStorableObject class >> typeCode, but for tree entries

I'd prefer to figure out how to contribute the changes using the
in-image github workflow, but for reference, I've attached fileouts of
the changes.

Regards,
  Tony



GitTreeDiff.st (13K) Download Attachment
GitTaglikeObject-contributor.st (596 bytes) Download Attachment
GitTag-remove-restriction.st (1K) Download Attachment
GitTree-followPath.st (522 bytes) Download Attachment
GitTaglikeObject-messageSummary.st (456 bytes) Download Attachment
GitTreeEntry-entryCode.st (574 bytes) Download Attachment
GitRepository-collectTagsFromLooseRefs.st (690 bytes) Download Attachment
GitReference class-validateReferenceName.st (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: (1) Bug fixes, and (2) potential improvements to FileSystem-Git

Jakob Reschke
Hi Tony,

I suggest you use the Git Browser to commit the changes. Clone your
fork or add it from a directory to the Git Browser, make sure your
changes are present in the image, then commit them (since it's your
fork it does not matter on which branch) and push. After that, you can
file a pull request on GitHub (there are no in-image buttons to do
that).

>
>  - repair GitRepository >> collectTagsFromLooseRefs when the repo has
   tags including a '/'
>

That method no longer exists and I remember having fixed this behavior
or something similar like it already. I did some larger refactoring
this year that routes all reads and writes through a "unit of work"
object, so the tag access has moved there as well. The purpose of this
change was not to reopen and re-read files repeatedly during coherent
operations such as creating a new commit or assembling the log, to
make things faster. Please make sure that your FileSystem-Git is
up-to-date. You can update it together with Squot and tools via the
blue drop down button on the Git Browser window, or via Metacello.

Looking forward to inspecting your changes, but it may be a while
until I can follow up on them.

Note that github:// Monticello repositories are only used by Metacello
to download something, they cannot be used for actual work.

Kind regards,
Jakob

Am Mo., 9. Nov. 2020 um 14:01 Uhr schrieb Tony Garnock-Jones
<[hidden email]>:

>
> Hi Jakob, all,
>
> I have a few bug fixes and potential enhancements to FileSystem-Git
> ready, but I can't figure out how to add a new github:// repository to
> Monticello. I've made my own fork of Squot at the github end, and now I
> just need to add it to my image somehow...
>
> The fixes I have are:
>
>  - repair GitReference class >> validateReferenceName: to follow the
>    rules in the git docs
>
>  - repair GitRepository >> collectTagsFromLooseRefs when the repo has
>    tags including a '/'
>
>  - remove restriction on GitTag's object field: tags can point at any
>    git object, not just commits
>
> The potential enhancements I have are:
>
>  - a GitTreeDiffBuilder class which digs into a bit more detail than
>    the existing GitDiffCreator; namely, it classifies changes into:
>      GitTreeDiffModeChangedItem
>      GitTreeDiffNewItem
>      GitTreeDiffRenamedItem
>      GitTreeDiffSubmoduleChangedItem
>      GitTreeDiffTypeChangedItem
>      GitTreeDiffChangedItem
>      GitTreeDiffDeletedItem
>
>  - GitTaglikeObject >> contributor, which answers author for commits
>    and tagger for tags
>
>  - GitTaglikeObject >> messageSummary, which answers the first line of
>    the commit message on the assumption that this contains a summary
>    of the whole thing (a common convention)
>
>  - GitTree >> followPath:, for digging into a tree when working in a
>    git context and not a simulated-filesystem context
>
>  - GitTreeEntry >> entryCode, answering something analogous to
>    GitStorableObject class >> typeCode, but for tree entries
>
> I'd prefer to figure out how to contribute the changes using the
> in-image github workflow, but for reference, I've attached fileouts of
> the changes.
>
> Regards,
>   Tony