public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Larry <cygwin@verizon.net>
To: cygwin@cygwin.com
Cc: jhg@acm.org
Subject: Re: Most git executables are hard links to git.exe?
Date: Sat, 22 Jul 2023 01:55:54 -0400	[thread overview]
Message-ID: <f9d0f896-37bb-c88d-cfdd-c619320f87b1@verizon.net> (raw)
In-Reply-To: <a5e19263-d820-7737-16eb-16e6429dd586@jhmg.net>

On 7/21/23 17:54, Jim Garrison via Cygwin wrote:
> On 07/21/23 14:52, Brian Inglis wrote:
>> On 2023-07-21 14:59, Jim Garrison via Cygwin wrote:
>>> Git comes with over 100 executables, mostly in /usr/libexec/git-core,
>>> that all appear to be *hard* links to /bin/git, in both Cygwin and
>>> Windows. The Windows fsutil command shows they're all hard linked:
> [snip]
>>> I'm curious to know if there's a specific reason for this implementation
>>> that would make it the choice over symbolic links.
>>
>> For the same reason you are complaining about backups not taking hardlinks 
>> into account: to avoid distributing 400MB instead of 3MB.
>>
>> Cygwin backup utilities should be able to deal with these e.g. rsync -H, 
>> --hard-links, although it appears xcopy and robocopy may not under Windows 
>> 10; don't know about other utilities or Windows 11.
> 
> But why not use symbolic links to accomplish the same thing?

If you're wondering what the limitations and complications of symbolic links
on Windows are, I'd recommend reading item 5.8 in the FAQ - "How do symbolic
links work?" (https://cygwin.com/faq.html#faq.api.symlinks)  Keep in
mind that this applies to symbolic links in the Cygwin world.  As long as
that's all you care about, then the various trade-offs and limitations can
certainly be mitigated in your personal environment to the extent that you
might actually prefer and choose to use Cygwin symbolic links over hard
links for your needs.  But in the general case, they really don't compare to
simplicity of hard links which are fully supported in Windows on NTFS file
systems along with all Cygwin tools and transparently degrade to duplicated
files on file systems and with software that doesn't support them.  In these
degraded use cases, they take up more space because the link semantics
aren't maintained but they are still 100% valid and useful.  The same cannot 
be said of symbolic links.


  reply	other threads:[~2023-07-22  5:56 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-21 20:59 Jim Garrison
2023-07-21 21:52 ` Brian Inglis
2023-07-21 21:54   ` Jim Garrison
2023-07-22  5:55     ` Larry [this message]
2023-07-22 17:33     ` Adam Dinwoodie
2023-07-22 17:35       ` Jim Garrison
2023-07-30  0:32         ` L A Walsh
2023-07-31 13:36     ` Andrey Repin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f9d0f896-37bb-c88d-cfdd-c619320f87b1@verizon.net \
    --to=cygwin@verizon.net \
    --cc=cygwin@cygwin.com \
    --cc=jhg@acm.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 read-only IMAP folder(s) and NNTP newsgroup(s).