git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git svn clone failed
@ 2025-05-02 13:59 BERENDSEN Arnoud
  2025-05-04  8:19 ` Johannes Schindelin
  0 siblings, 1 reply; 13+ messages in thread
From: BERENDSEN Arnoud @ 2025-05-02 13:59 UTC (permalink / raw)
  To: git@vger.kernel.org



What did you do before the bug happened? (Steps to reproduce your issue)

- I was migrating an SVN repository to Git using:
git svn clone <my-svn-repo> --stdlayout --authors-file=C:\path\to\my-authors-file.txt  --preserve-empty-dirs .


What did you expect to happen? (Expected behavior)

- I expect the entire process to succeed without errors.
When unavoidable errors do happen, I expect the error message to be helpful, give a clear description of what the underlying problem is, and how to solve it.


What happened instead? (Actual behavior)

- The migration failed with the folowwing error:

r2814 = 1ecf20e2d14b45ee517b56f5f51b406801e9869b (refs/remotes/origin/trunk)
Found possible branch point: https://<my-svn-repo> => https://<my-svn-repo>/branches/<my-branch-name>, 2814
W: Refspec glob conflict (ref: refs/remotes/origin/trunk):
expected path: branches/trunk
    real path: trunk
Continuing ahead with trunk
W: Refspec glob conflict (ref: refs/remotes/origin/trunk):
expected path: branches/trunk
    real path: trunk
Continuing ahead with trunk
Initializing parent: refs/remotes/origin/<my-branch-name>@2814
Use of uninitialized value $args[2] in join or string at C:/Program Files/Git/mingw64/share/perl5/Git.pm line 1655.
Use of uninitialized value $_[3] in exec at C:/Program Files/Git/mingw64/share/perl5/Git.pm line 1681.
fatal: Not a valid object name
ls-tree -z --name-only  data/OVK/: command returned error: 128




What's different between what you expected and what actually happened?

- The process failed instead of succeeding, and the error was incredibly unhelpful, and seems like a bug in Git.pm.


Anything else you want to add:


Before this happened, another error happened first, which may or may not be related:

r1126 = 9d5f073cfcac00b9d8586923da4d045699244749 (refs/remotes/origin/trunk)
Failed to strip path 'src/Lijsten/.gitignore' ((?^:^trunk(/|$)))

This also is not a very helpful error, as it gives no indication of *why* it failed to 'strip the path' (strip it of what, anyway?), nor why it failed on this particular commit.

Restarting the process by rerunning the same 'git svn clone' command seemed to 'fix' the problem by just continuing the process (which begs the question why the process aborted itself in the first place. Couldn't it just have continued?)



Please review the rest of the bug report below.
You can delete any lines you don't wish to share.


[System Info]
git version:
git version 2.49.0.windows.1
cpu: x86_64
built from commit: cca1f38702730b35f52c29efd62864b85e85ddcc
sizeof-long: 4
sizeof-size_t: 8
shell-path: D:/git-sdk-64-build-installers/usr/bin/sh
feature: fsmonitor--daemon
libcurl: 8.12.1
OpenSSL: OpenSSL 3.2.4 11 Feb 2025
zlib: 1.3.1
uname: Windows 10.0 22631
compiler info: gnuc: 14.2
libc info: no libc information available
$SHELL (typically, interactive shell): <unset>


[Enabled Hooks]

C2 - Restricted use

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: git svn clone failed
  2025-05-02 13:59 git svn clone failed BERENDSEN Arnoud
@ 2025-05-04  8:19 ` Johannes Schindelin
  2025-05-05  6:24   ` Cleaning up "contrib/" (was: git svn clone failed) Patrick Steinhardt
  0 siblings, 1 reply; 13+ messages in thread
From: Johannes Schindelin @ 2025-05-04  8:19 UTC (permalink / raw)
  To: BERENDSEN Arnoud; +Cc: git@vger.kernel.org

Hi Arnoud,

On Fri, 2 May 2025, BERENDSEN Arnoud wrote:

> What did you do before the bug happened? (Steps to reproduce your issue)
> 
> - I was migrating an SVN repository to Git using:
> git svn clone <my-svn-repo> --stdlayout --authors-file=C:\path\to\my-authors-file.txt  --preserve-empty-dirs .
> 
> 
> What did you expect to happen? (Expected behavior)
> 
> - I expect the entire process to succeed without errors.
> When unavoidable errors do happen, I expect the error message to be helpful, give a clear description of what the underlying problem is, and how to solve it.
> 
> 
> What happened instead? (Actual behavior)
> 
> - The migration failed with the folowwing error:
> 
> r2814 = 1ecf20e2d14b45ee517b56f5f51b406801e9869b (refs/remotes/origin/trunk)
> Found possible branch point: https://<my-svn-repo> => https://<my-svn-repo>/branches/<my-branch-name>, 2814
> W: Refspec glob conflict (ref: refs/remotes/origin/trunk):
> expected path: branches/trunk
>     real path: trunk
> Continuing ahead with trunk
> W: Refspec glob conflict (ref: refs/remotes/origin/trunk):
> expected path: branches/trunk
>     real path: trunk
> Continuing ahead with trunk
> Initializing parent: refs/remotes/origin/<my-branch-name>@2814
> Use of uninitialized value $args[2] in join or string at C:/Program Files/Git/mingw64/share/perl5/Git.pm line 1655.
> Use of uninitialized value $_[3] in exec at C:/Program Files/Git/mingw64/share/perl5/Git.pm line 1681.
> fatal: Not a valid object name
> ls-tree -z --name-only  data/OVK/: command returned error: 128

In Git for Windows, `git svn` is quite a maintenance burden (with a few
known issues) and my current thinking is to drop it from Git for Windows
instead of leaving it in the current shape (I, for one, cannot justify
working on it myself, and the same seems to hold for everybody else, too).
See also https://github.com/git-for-windows/git/issues/5405.

Is there a chance that you could use the [Windows Subsystem for Linux
(WSL)](https://learn.microsoft.com/en-us/windows/wsl/) (i.e. the Linux
version of Git) for this migration, especially given that the
characterization as "migration" suggests that this is a one-off task?

Ciao,
Johannes

> What's different between what you expected and what actually happened?
> 
> - The process failed instead of succeeding, and the error was incredibly unhelpful, and seems like a bug in Git.pm.
> 
> 
> Anything else you want to add:
> 
> 
> Before this happened, another error happened first, which may or may not be related:
> 
> r1126 = 9d5f073cfcac00b9d8586923da4d045699244749 (refs/remotes/origin/trunk)
> Failed to strip path 'src/Lijsten/.gitignore' ((?^:^trunk(/|$)))
> 
> This also is not a very helpful error, as it gives no indication of *why* it failed to 'strip the path' (strip it of what, anyway?), nor why it failed on this particular commit.
> 
> Restarting the process by rerunning the same 'git svn clone' command seemed to 'fix' the problem by just continuing the process (which begs the question why the process aborted itself in the first place. Couldn't it just have continued?)
> 
> 
> 
> Please review the rest of the bug report below.
> You can delete any lines you don't wish to share.
> 
> 
> [System Info]
> git version:
> git version 2.49.0.windows.1
> cpu: x86_64
> built from commit: cca1f38702730b35f52c29efd62864b85e85ddcc
> sizeof-long: 4
> sizeof-size_t: 8
> shell-path: D:/git-sdk-64-build-installers/usr/bin/sh
> feature: fsmonitor--daemon
> libcurl: 8.12.1
> OpenSSL: OpenSSL 3.2.4 11 Feb 2025
> zlib: 1.3.1
> uname: Windows 10.0 22631
> compiler info: gnuc: 14.2
> libc info: no libc information available
> $SHELL (typically, interactive shell): <unset>
> 
> 
> [Enabled Hooks]
> 
> C2 - Restricted use
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Cleaning up "contrib/" (was: git svn clone failed)
  2025-05-04  8:19 ` Johannes Schindelin
@ 2025-05-05  6:24   ` Patrick Steinhardt
  2025-05-05  7:36     ` Johannes Schindelin
  2025-05-05 19:10     ` Cleaning up "contrib/" Junio C Hamano
  0 siblings, 2 replies; 13+ messages in thread
From: Patrick Steinhardt @ 2025-05-05  6:24 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: BERENDSEN Arnoud, git@vger.kernel.org

On Sun, May 04, 2025 at 10:19:06AM +0200, Johannes Schindelin wrote:
> Hi Arnoud,
> 
> On Fri, 2 May 2025, BERENDSEN Arnoud wrote:
> 
> > What did you do before the bug happened? (Steps to reproduce your issue)
> > 
> > - I was migrating an SVN repository to Git using:
> > git svn clone <my-svn-repo> --stdlayout --authors-file=C:\path\to\my-authors-file.txt  --preserve-empty-dirs .
> > 
> > 
> > What did you expect to happen? (Expected behavior)
> > 
> > - I expect the entire process to succeed without errors.
> > When unavoidable errors do happen, I expect the error message to be helpful, give a clear description of what the underlying problem is, and how to solve it.
> > 
> > 
> > What happened instead? (Actual behavior)
> > 
> > - The migration failed with the folowwing error:
> > 
> > r2814 = 1ecf20e2d14b45ee517b56f5f51b406801e9869b (refs/remotes/origin/trunk)
> > Found possible branch point: https://<my-svn-repo> => https://<my-svn-repo>/branches/<my-branch-name>, 2814
> > W: Refspec glob conflict (ref: refs/remotes/origin/trunk):
> > expected path: branches/trunk
> >     real path: trunk
> > Continuing ahead with trunk
> > W: Refspec glob conflict (ref: refs/remotes/origin/trunk):
> > expected path: branches/trunk
> >     real path: trunk
> > Continuing ahead with trunk
> > Initializing parent: refs/remotes/origin/<my-branch-name>@2814
> > Use of uninitialized value $args[2] in join or string at C:/Program Files/Git/mingw64/share/perl5/Git.pm line 1655.
> > Use of uninitialized value $_[3] in exec at C:/Program Files/Git/mingw64/share/perl5/Git.pm line 1681.
> > fatal: Not a valid object name
> > ls-tree -z --name-only  data/OVK/: command returned error: 128
> 
> In Git for Windows, `git svn` is quite a maintenance burden (with a few
> known issues) and my current thinking is to drop it from Git for Windows
> instead of leaving it in the current shape (I, for one, cannot justify
> working on it myself, and the same seems to hold for everybody else, too).
> See also https://github.com/git-for-windows/git/issues/5405.
> 
> Is there a chance that you could use the [Windows Subsystem for Linux
> (WSL)](https://learn.microsoft.com/en-us/windows/wsl/) (i.e. the Linux
> version of Git) for this migration, especially given that the
> characterization as "migration" suggests that this is a one-off task?

I sometimes wonder whether we should move such basically-unmaintained
scripts out of the Git repository. They do a disservice to both us and
to our users as they create the wrong impression of being the sanctioned
way of doing a particular task even though they have only been gathering
dust for ages.

Many of the tools in "contrib/" fall into this category, and to the best
of my knowledge there isn't really a clear strategy for that directory.
So from my perspective, we should either rethink whether it is worth it
to have "contrib/" as part of Git, or we should at least do a spring
cleanup and drop bits that haven't seen any love in the last couple of
years.

Patrick

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/" (was: git svn clone failed)
  2025-05-05  6:24   ` Cleaning up "contrib/" (was: git svn clone failed) Patrick Steinhardt
@ 2025-05-05  7:36     ` Johannes Schindelin
  2025-05-05  9:44       ` Patrick Steinhardt
  2025-05-05 19:10     ` Cleaning up "contrib/" Junio C Hamano
  1 sibling, 1 reply; 13+ messages in thread
From: Johannes Schindelin @ 2025-05-05  7:36 UTC (permalink / raw)
  To: Patrick Steinhardt; +Cc: BERENDSEN Arnoud, git@vger.kernel.org

Hi Patrick,

On Mon, 5 May 2025, Patrick Steinhardt wrote:

> On Sun, May 04, 2025 at 10:19:06AM +0200, Johannes Schindelin wrote:
> > 
> > On Fri, 2 May 2025, BERENDSEN Arnoud wrote:
> > 
> > > [... talks about `git svn` not working in Git for Windows ...]
> > 
> > In Git for Windows, `git svn` is quite a maintenance burden [... then
> > suggests to use Windows System for Linux (WSL) as a workaround ...].
> 
> I sometimes wonder whether we should move such basically-unmaintained
> scripts out of the Git repository. They do a disservice to both us and
> to our users as they create the wrong impression of being the sanctioned
> way of doing a particular task even though they have only been gathering
> dust for ages.
> 
> Many of the tools in "contrib/" fall into this category, and to the best
> of my knowledge there isn't really a clear strategy for that directory.
> So from my perspective, we should either rethink whether it is worth it
> to have "contrib/" as part of Git, or we should at least do a spring
> cleanup and drop bits that haven't seen any love in the last couple of
> years.

While I am thoroughly sympathetic to the idea of cleaning up `contrib/`
(which is a mixture of things that are quite well supported, such as the
Bash tab completion script, and of things that are the opposite of
maintained, such as `contrib/workdir/` that should have been dropped a
long time ago since it encourages relying on Git's internals and has been
superseded by `git worktree`), I cannot fail to notice that `git-svn`
isn't even in `contrib/`.

Instead, `git-svn` is in the same category as `git-archimport`,
`git-cvsserver`, `git-cvsexportcommit` and `git-cvsimport`, i.e. Git
commands that tried to facilitate transitioning from specific version
control systems that had been a lot more common than Git at the time, but
no longer are. Maybe `git-svn` is not quite as obsolete as the other
commands in that category, but they are all merely dust collectors in
Git's codebase.

Ciao,
Johannes

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/" (was: git svn clone failed)
  2025-05-05  7:36     ` Johannes Schindelin
@ 2025-05-05  9:44       ` Patrick Steinhardt
  0 siblings, 0 replies; 13+ messages in thread
From: Patrick Steinhardt @ 2025-05-05  9:44 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: BERENDSEN Arnoud, git@vger.kernel.org

On Mon, May 05, 2025 at 09:36:06AM +0200, Johannes Schindelin wrote:
> Hi Patrick,
> 
> On Mon, 5 May 2025, Patrick Steinhardt wrote:
> 
> > On Sun, May 04, 2025 at 10:19:06AM +0200, Johannes Schindelin wrote:
> > > 
> > > On Fri, 2 May 2025, BERENDSEN Arnoud wrote:
> > > 
> > > > [... talks about `git svn` not working in Git for Windows ...]
> > > 
> > > In Git for Windows, `git svn` is quite a maintenance burden [... then
> > > suggests to use Windows System for Linux (WSL) as a workaround ...].
> > 
> > I sometimes wonder whether we should move such basically-unmaintained
> > scripts out of the Git repository. They do a disservice to both us and
> > to our users as they create the wrong impression of being the sanctioned
> > way of doing a particular task even though they have only been gathering
> > dust for ages.
> > 
> > Many of the tools in "contrib/" fall into this category, and to the best
> > of my knowledge there isn't really a clear strategy for that directory.
> > So from my perspective, we should either rethink whether it is worth it
> > to have "contrib/" as part of Git, or we should at least do a spring
> > cleanup and drop bits that haven't seen any love in the last couple of
> > years.
> 
> While I am thoroughly sympathetic to the idea of cleaning up `contrib/`
> (which is a mixture of things that are quite well supported, such as the
> Bash tab completion script, and of things that are the opposite of
> maintained, such as `contrib/workdir/` that should have been dropped a
> long time ago since it encourages relying on Git's internals and has been
> superseded by `git worktree`), I cannot fail to notice that `git-svn`
> isn't even in `contrib/`.

Oh, right you are!

> Instead, `git-svn` is in the same category as `git-archimport`,
> `git-cvsserver`, `git-cvsexportcommit` and `git-cvsimport`, i.e. Git
> commands that tried to facilitate transitioning from specific version
> control systems that had been a lot more common than Git at the time, but
> no longer are. Maybe `git-svn` is not quite as obsolete as the other
> commands in that category, but they are all merely dust collectors in
> Git's codebase.

Fully agreed.

Patrick

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/"
  2025-05-05  6:24   ` Cleaning up "contrib/" (was: git svn clone failed) Patrick Steinhardt
  2025-05-05  7:36     ` Johannes Schindelin
@ 2025-05-05 19:10     ` Junio C Hamano
  2025-05-06  5:40       ` Patrick Steinhardt
  1 sibling, 1 reply; 13+ messages in thread
From: Junio C Hamano @ 2025-05-05 19:10 UTC (permalink / raw)
  To: Patrick Steinhardt
  Cc: Johannes Schindelin, BERENDSEN Arnoud, git@vger.kernel.org

Patrick Steinhardt <ps@pks.im> writes:

> Many of the tools in "contrib/" fall into this category, and to the best
> of my knowledge there isn't really a clear strategy for that directory.
> So from my perspective, we should either rethink whether it is worth it
> to have "contrib/" as part of Git, or we should at least do a spring
> cleanup and drop bits that haven't seen any love in the last couple of
> years.

Things in contrib/ should either move up (to become a part of the
core), move out (to become an independent project), or disappear.

But isn't git-svn not even part of contrib/?


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/"
  2025-05-05 19:10     ` Cleaning up "contrib/" Junio C Hamano
@ 2025-05-06  5:40       ` Patrick Steinhardt
  2025-05-12 13:50         ` Jeff King
  0 siblings, 1 reply; 13+ messages in thread
From: Patrick Steinhardt @ 2025-05-06  5:40 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Johannes Schindelin, BERENDSEN Arnoud, git@vger.kernel.org

On Mon, May 05, 2025 at 12:10:15PM -0700, Junio C Hamano wrote:
> Patrick Steinhardt <ps@pks.im> writes:
> 
> > Many of the tools in "contrib/" fall into this category, and to the best
> > of my knowledge there isn't really a clear strategy for that directory.
> > So from my perspective, we should either rethink whether it is worth it
> > to have "contrib/" as part of Git, or we should at least do a spring
> > cleanup and drop bits that haven't seen any love in the last couple of
> > years.
> 
> Things in contrib/ should either move up (to become a part of the
> core), move out (to become an independent project), or disappear.

So this very much sounds like staging drivers in the Linux kernel, where
[1] seems to match the description of yours. The only problem is that I
haven't really seen the described movement -- many of the pieces haven't
been touched for years.

I'll probably just send a patch series to get rid of at least a subset
of them. I also think that we should adapt the README and rephrase it
according to what the modern intention of this directory is, which seems
to have changed.

Other than that we also have some bits and pieces that _are_ actively
maintained, but that just don't have a better place to live:

  - CMake.
  - Coccinelle rules.
  - Contacts.
  - Credential helpers.
  - Diff-highlight.
  - git-jump.
  - Shell completion.

Maybe they should be promoted and receive a proper home.

> But isn't git-svn not even part of contrib/?

Yeah, Dscho already corrected me.

Patrick

[1]: https://lwn.net/Articles/324279/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/"
  2025-05-06  5:40       ` Patrick Steinhardt
@ 2025-05-12 13:50         ` Jeff King
  2025-05-13  0:13           ` brian m. carlson
  0 siblings, 1 reply; 13+ messages in thread
From: Jeff King @ 2025-05-12 13:50 UTC (permalink / raw)
  To: Patrick Steinhardt
  Cc: Junio C Hamano, Johannes Schindelin, BERENDSEN Arnoud,
	git@vger.kernel.org

On Tue, May 06, 2025 at 07:40:39AM +0200, Patrick Steinhardt wrote:

> Other than that we also have some bits and pieces that _are_ actively
> maintained, but that just don't have a better place to live:
> 
> [...]
>   - Diff-highlight.
>   - git-jump.

These two are due to me. I don't have a problem moving them into their
own projects if we want to clean out contrib.

I think diff-highlight is something that _should_ eventually happen
inside git-diff itself (because it would be more efficient and we could
do a better job). But it wouldn't share any implementation with what's
in contrib/.

>   - Credential helpers.

These ones are tricky. In theory they could be spun off into their own
projects, and we already have examples in the wild of things like GCM
which are maintained totally separately.

But I think we may need to find people to step up as maintainers. In
particular, I think osxkeychain is probably used by a lot of people, and
probably shouldn't just go away. But I don't know how the maintainer
would be. I wrote it originally, but don't (and never did) use it
myself, or even have access to a macOS machine.

-Peff

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/"
  2025-05-12 13:50         ` Jeff King
@ 2025-05-13  0:13           ` brian m. carlson
  2025-05-13  9:06             ` Patrick Steinhardt
  2025-05-14 18:19             ` Jeff King
  0 siblings, 2 replies; 13+ messages in thread
From: brian m. carlson @ 2025-05-13  0:13 UTC (permalink / raw)
  To: Jeff King
  Cc: Patrick Steinhardt, Junio C Hamano, Johannes Schindelin,
	BERENDSEN Arnoud, git@vger.kernel.org

[-- Attachment #1: Type: text/plain, Size: 2769 bytes --]

On 2025-05-12 at 13:50:17, Jeff King wrote:
> On Tue, May 06, 2025 at 07:40:39AM +0200, Patrick Steinhardt wrote:
> 
> > Other than that we also have some bits and pieces that _are_ actively
> > maintained, but that just don't have a better place to live:
> > 
> > [...]
> >   - Diff-highlight.
> >   - git-jump.
> 
> These two are due to me. I don't have a problem moving them into their
> own projects if we want to clean out contrib.
> 
> I think diff-highlight is something that _should_ eventually happen
> inside git-diff itself (because it would be more efficient and we could
> do a better job). But it wouldn't share any implementation with what's
> in contrib/.

I think there are definitely users of diff-highlight.  I remember seeing
a reference to it recently and not realizing it was in contrib, but it
is actually used by others.  I don't use it myself, though.

> >   - Credential helpers.
> 
> These ones are tricky. In theory they could be spun off into their own
> projects, and we already have examples in the wild of things like GCM
> which are maintained totally separately.
> 
> But I think we may need to find people to step up as maintainers. In
> particular, I think osxkeychain is probably used by a lot of people, and
> probably shouldn't just go away. But I don't know how the maintainer
> would be. I wrote it originally, but don't (and never did) use it
> myself, or even have access to a macOS machine.

These are often shipped by distributors.  Apple ships osxkeychain, as
does Homebrew.  Many Linux distros ship libsecret and it's the
recommended choice for desktop Linux.

wincred, while not super popular, is still used and is smaller and
lighter than GCM.  It doesn't actually look like GCM is seeing a great
deal of maintenance either at this point, so I'd say they're about
equally well maintained.  Since I don't use Windows, I don't know if
there are other usecases (such as noninteractive uses) that are better
supported by wincred, but I'd recommend keeping it.

I definitely want us to keep these somewhere since they are quite
commonly used (even wincred) and getting rid of them will break a lot of
people and leave them without a secure credential storage option.  We
could promote them to the main repository and simply build them with a
Makefile knob (or by default on the appropriate platform) and in CI, in
which case we'd at least know they build.

I'm not volunteering to be _the_ maintainer for libsecret, but I will
definitely contribute to making it work since I use it.  This is much
like I am not _the_ maintainer for making Git work with Kerberos, but I
do certainly often fix it should it break.
-- 
brian m. carlson (they/them)
Toronto, Ontario, CA

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 325 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/"
  2025-05-13  0:13           ` brian m. carlson
@ 2025-05-13  9:06             ` Patrick Steinhardt
  2025-05-13 16:59               ` Junio C Hamano
  2025-05-14 18:19             ` Jeff King
  1 sibling, 1 reply; 13+ messages in thread
From: Patrick Steinhardt @ 2025-05-13  9:06 UTC (permalink / raw)
  To: brian m. carlson, Jeff King, Junio C Hamano, Johannes Schindelin,
	BERENDSEN Arnoud, git@vger.kernel.org

On Tue, May 13, 2025 at 12:13:30AM +0000, brian m. carlson wrote:
> On 2025-05-12 at 13:50:17, Jeff King wrote:
> > On Tue, May 06, 2025 at 07:40:39AM +0200, Patrick Steinhardt wrote:
> > 
> > > Other than that we also have some bits and pieces that _are_ actively
> > > maintained, but that just don't have a better place to live:
> > > 
> > > [...]
> > >   - Diff-highlight.
> > >   - git-jump.
> > 
> > These two are due to me. I don't have a problem moving them into their
> > own projects if we want to clean out contrib.
> > 
> > I think diff-highlight is something that _should_ eventually happen
> > inside git-diff itself (because it would be more efficient and we could
> > do a better job). But it wouldn't share any implementation with what's
> > in contrib/.
> 
> I think there are definitely users of diff-highlight.  I remember seeing
> a reference to it recently and not realizing it was in contrib, but it
> is actually used by others.  I don't use it myself, though.

Yup, diff-highlight is something I see recommended quite often.

> > >   - Credential helpers.
> > 
> > These ones are tricky. In theory they could be spun off into their own
> > projects, and we already have examples in the wild of things like GCM
> > which are maintained totally separately.
> > 
> > But I think we may need to find people to step up as maintainers. In
> > particular, I think osxkeychain is probably used by a lot of people, and
> > probably shouldn't just go away. But I don't know how the maintainer
> > would be. I wrote it originally, but don't (and never did) use it
> > myself, or even have access to a macOS machine.
> 
> These are often shipped by distributors.  Apple ships osxkeychain, as
> does Homebrew.  Many Linux distros ship libsecret and it's the
> recommended choice for desktop Linux.
> 
> wincred, while not super popular, is still used and is smaller and
> lighter than GCM.  It doesn't actually look like GCM is seeing a great
> deal of maintenance either at this point, so I'd say they're about
> equally well maintained.  Since I don't use Windows, I don't know if
> there are other usecases (such as noninteractive uses) that are better
> supported by wincred, but I'd recommend keeping it.
> 
> I definitely want us to keep these somewhere since they are quite
> commonly used (even wincred) and getting rid of them will break a lot of
> people and leave them without a secure credential storage option.  We
> could promote them to the main repository and simply build them with a
> Makefile knob (or by default on the appropriate platform) and in CI, in
> which case we'd at least know they build.
> 
> I'm not volunteering to be _the_ maintainer for libsecret, but I will
> definitely contribute to making it work since I use it.  This is much
> like I am not _the_ maintainer for making Git work with Kerberos, but I
> do certainly often fix it should it break.

Yup. I think safe credential helpers should rather be moved into our
official tree. This includes at least libsecret and osxkeychain. I'm not
sure about the netrc one though -- it's unsafe by nature, and I'm not
sure I would feel comfortable with shipping such a credential helper
that is known-unsafe.

Patrick

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/"
  2025-05-13  9:06             ` Patrick Steinhardt
@ 2025-05-13 16:59               ` Junio C Hamano
  0 siblings, 0 replies; 13+ messages in thread
From: Junio C Hamano @ 2025-05-13 16:59 UTC (permalink / raw)
  To: Patrick Steinhardt
  Cc: brian m. carlson, Jeff King, Johannes Schindelin,
	BERENDSEN Arnoud, git@vger.kernel.org

Patrick Steinhardt <ps@pks.im> writes:

> Yup. I think safe credential helpers should rather be moved into our
> official tree. This includes at least libsecret and osxkeychain.

Yes.  s|^contrib/|| should be sufficient for them.

> I'm not
> sure about the netrc one though -- it's unsafe by nature, and I'm not
> sure I would feel comfortable with shipping such a credential helper
> that is known-unsafe.

That depends.  It is a known-convenient helper that can often be
used in an unsafe way, but when used with GPG encrypted netrc files,
especially on a single user box that is reasonably secured, it is
unfair to call it known-unsafe, I would have to say.

Thanks.



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/"
  2025-05-13  0:13           ` brian m. carlson
  2025-05-13  9:06             ` Patrick Steinhardt
@ 2025-05-14 18:19             ` Jeff King
  2025-05-14 20:05               ` Junio C Hamano
  1 sibling, 1 reply; 13+ messages in thread
From: Jeff King @ 2025-05-14 18:19 UTC (permalink / raw)
  To: brian m. carlson
  Cc: Patrick Steinhardt, Junio C Hamano, Johannes Schindelin,
	BERENDSEN Arnoud, git@vger.kernel.org

On Tue, May 13, 2025 at 12:13:30AM +0000, brian m. carlson wrote:

> > I think diff-highlight is something that _should_ eventually happen
> > inside git-diff itself (because it would be more efficient and we could
> > do a better job). But it wouldn't share any implementation with what's
> > in contrib/.
> 
> I think there are definitely users of diff-highlight.  I remember seeing
> a reference to it recently and not realizing it was in contrib, but it
> is actually used by others.  I don't use it myself, though.

Oh, there definitely are users. Sometimes they contact me outside the
list. ;) I thought the discussion around contrib/ here was more around
"should things in contrib/ spin out to their own projects", and not
"should they be removed and forgotten". :)

I am perfectly happy if these things stay in contrib/ forever. I was
only voicing that I'd be OK taking them on as outside projects if we
didn't want to keep them in-tree anymore.

> > >   - Credential helpers.
> > 
> > These ones are tricky. In theory they could be spun off into their own
> > projects, and we already have examples in the wild of things like GCM
> > which are maintained totally separately.
> > 
> > But I think we may need to find people to step up as maintainers. In
> > particular, I think osxkeychain is probably used by a lot of people, and
> > probably shouldn't just go away. But I don't know how the maintainer
> > would be. I wrote it originally, but don't (and never did) use it
> > myself, or even have access to a macOS machine.
> 
> These are often shipped by distributors.  Apple ships osxkeychain, as
> does Homebrew.  Many Linux distros ship libsecret and it's the
> recommended choice for desktop Linux.

Right, I know people use them. What I meant was that if we wanted to
spin them to out-of-tree projects, we'd need somebody to volunteer to be
the maintainer of those projects. If they stay in-tree we can be a bit
looser (your "I don't want to be _the_ maintainer, but I can
contribute").

It does put more load on Junio, though. E.g., if there is a security
problem the project has to deal with embargoed release engineering,
whereas a separate project would do its own releases.

> wincred, while not super popular, is still used and is smaller and
> lighter than GCM.  It doesn't actually look like GCM is seeing a great
> deal of maintenance either at this point, so I'd say they're about
> equally well maintained.  Since I don't use Windows, I don't know if
> there are other usecases (such as noninteractive uses) that are better
> supported by wincred, but I'd recommend keeping it.

I don't use Windows, so I don't have a personal opinion. Code may not
see updates because it mostly works, or because hardly anybody is using
it. Or people may be using it but it's still broken. ;)

Last time wincred had a security hole (in 2020), the phrase "unsafe and
unmaintained" was thrown about on the security list, but we ultimately
fixed at least the immediate issue. But I find its general matching
strategy to be not very confidence-inspiring.

Dscho (or anybody else familiar with Windows) may want to comment
further.

-Peff

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Cleaning up "contrib/"
  2025-05-14 18:19             ` Jeff King
@ 2025-05-14 20:05               ` Junio C Hamano
  0 siblings, 0 replies; 13+ messages in thread
From: Junio C Hamano @ 2025-05-14 20:05 UTC (permalink / raw)
  To: Jeff King
  Cc: brian m. carlson, Patrick Steinhardt, Johannes Schindelin,
	BERENDSEN Arnoud, git@vger.kernel.org

Jeff King <peff@peff.net> writes:

> Right, I know people use them. What I meant was that if we wanted to
> spin them to out-of-tree projects, we'd need somebody to volunteer to be
> the maintainer of those projects. If they stay in-tree we can be a bit
> looser (your "I don't want to be _the_ maintainer, but I can
> contribute").
>
> It does put more load on Junio, though. E.g., if there is a security
> problem the project has to deal with embargoed release engineering,
> whereas a separate project would do its own releases.

Well, but it certainly is not more than what I currently need to do;
it does not make any difference whether it is housed in the contrib/
directory or in the tools/ directory.

> Last time wincred had a security hole (in 2020), the phrase "unsafe and
> unmaintained" was thrown about on the security list, but we ultimately
> fixed at least the immediate issue. But I find its general matching
> strategy to be not very confidence-inspiring.
>
> Dscho (or anybody else familiar with Windows) may want to comment
> further.

Thanks for a redirect.

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-05-14 20:05 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-02 13:59 git svn clone failed BERENDSEN Arnoud
2025-05-04  8:19 ` Johannes Schindelin
2025-05-05  6:24   ` Cleaning up "contrib/" (was: git svn clone failed) Patrick Steinhardt
2025-05-05  7:36     ` Johannes Schindelin
2025-05-05  9:44       ` Patrick Steinhardt
2025-05-05 19:10     ` Cleaning up "contrib/" Junio C Hamano
2025-05-06  5:40       ` Patrick Steinhardt
2025-05-12 13:50         ` Jeff King
2025-05-13  0:13           ` brian m. carlson
2025-05-13  9:06             ` Patrick Steinhardt
2025-05-13 16:59               ` Junio C Hamano
2025-05-14 18:19             ` Jeff King
2025-05-14 20:05               ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).