On Mon, Mar 17, 2025 at 00:06:33 -0400, Richard Stallman wrote:
>   >  But github changed the 
>   > definition of "pull request": in this workflow, you "fork" a git tree 
>   > (make an identical copy on the github server) by clicking a few buttons 
>   > on github's web ui, make some changes on your copy of the git branch, 
>   > then start a pull request to the upstream by clicking a few buttons on 
>   > github's web ui. The upstream maintainer then can accept or reject the 
>   > changes by clicking a button. So by definition, things are done on the 
>   > web interface.
>
> There are several reasons why we don't want to do this.  We don't want
> to have to give a savannah account to everyone that submits patches.
> We don't want to redistribute their patches from savannah while we
> don't have copyright assignments or while the maintainers have not
> judged them.  We don't want the submission of patches take up the
> savannah hackers' time.
>
> And we don't want to pressure contributors to use a web interface.
> It is fine to support one as one method, but the email method
> must not be deprecated or rendered undesirable.
>
> Therefore, we won't do pull requests in github style.  It would be ok
> to support the original basic git method of pull request, as an option
> alongside the email method.
>
> We need to distinguish these two kinds of pull requests clearly.
> Are there established terms for the two?
>
> For now, I will call them "githubish pull requests" and "basic git
> pull requests", but I'd rather use established terms if there are
> acceptable ones.

But anyone using Git can already do this today.  It is a decentralized
VCS; that's part of its design.  Savannah doesn't need to support it.

  # This first command can be skipped if the user has already pulled
  # from this repository before
  $ git remote add foo path/to/remote/repository  # HTTPS, SSH, ...
  $ git fetch foo                                 # grab branches

A "pull" in Git is a fetch+merge.  I didn't list it above because Git
offers a number of different ways to approach this.  But, for the sake
of literally using the term "pull":  

  $ git checkout foo/branch-name   # foo's branch
  $ git pull                       # update with most recent changes

The challenge is in conveniently making those changes available to be
pulled.  Most users aren't going to run their own servers.  If you don't
want to allow users to push to Savannah, where do their changes go?

They can use a public host/forge, but then they're not using Savannah.

If you want users to be able to say "I made changes, please pull from my
repository", and have that be convenient to do, you need to offer them
the convenience of having a place to host a repository for their
changes.

But if users are asking for a "pull request" or "merge request" feature,
I'd expect that they're talking about UI to do so, like GitHub/GitLab
(because, again, Git otherwise offers it already).

Another option is to add the option to Savannah to "fork" a repo and to
create a pull request, and present to them guidance on how to do so with
their own host.  Perhaps offer documentation for approved hosts that
meet the repo criteria.

-- 
Mike Gerwitz
https://mikegerwitz.com

Reply via email to