-
-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support creating hard links (in additional to symlinks) #301
Comments
Can you expand on this a bit? If you attempt to use soft links for you use case, what happens?
Initially, my thought was something like this:
or this:
|
Git in general does not follow symlinks, for git, a symlink is a regular file. And if the directory/file it points to is in .gitignore, it will be copied in it's broken (pointing to a non existing directory/file) state.
Seems good to me. The important part is the feature itself :) |
Most likely this function will need an additional parameter if someone wants to work on a proposal. |
Not an experience Python programmer myself, but I can take a look at it. First, how do I get started? I want to import shell.py to get access to functions mkdir, call etc. but I seem to be unable to do this. I could not find developer documentation either. |
Trying to build following instructions https://gitman.readthedocs.io/en/latest/about/contributing/#installation , from my virtual environment:
|
I gave up using macOS, so tried using Debian Bookworm. Sadly got many of the same issues as I did with macOS. I found some references to that Python 3.11 was too new etc. so I installed pyenv in Debian, and found Python 3.8.17 working perfectly. Now the make commands actually work. And the code is done as well. I am not a Python developer, and could not wrap my head around the test framework though, but except for that everything should be in place and working. |
With for example, gitman.yml:
And .gitignore:
vendor/doc/gitman
will be a symlink, and content invendor/gitman
will be ignored.For my project I want to keep copies of the libraries I use, and since git does not follow symlinks the approach above does not work.
I could of course remove the entry in .gitignore, but then I get a lot of unneeded resources.
Hard links seem to be the way to resolve this. Suggested implementation, gitman.yml:
vendor/doc/gitman
would be a regular directory, each file inside would be a hardlink, and any nesting directory would be recreated with the same name as a directory (not symlink). Like a copy (cp -r) but the files are hard linked instead of copies.Of course hard links has some limitations, has to be on same file system for instance. So an option to fallback to a copy would perhaps required.
The text was updated successfully, but these errors were encountered: