-
-
Notifications
You must be signed in to change notification settings - Fork 754
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
hardlinked symlinks are not supported #2379
Comments
|
so given its a hardlink to a symlink, the only tangible benefit would be that when one of the symlinks is overwritten to point elsewhere the other one would similarly be updated to point to the new location as well, as normal hard links work. But I tested this on my system using ln -sf (which as far as I'm aware is the only way to change a symlink without deleting first) and it appears that ln will first delete then write breaking any hardlink on the symlink anyways. Thus, if by itself this functionality is not present, perhaps this issue can be safely ignored altogether since separate inodes see to function the exact same as hardlinking them. Right? And disk size is irrelevant when talking about links. In other words, unless I am mistaken and please correct me if I am, there is no way to 'edit' a symlink other than to delete it first then create a new one with a new innode. Borg would only make sense include this feature if there is a way to change the symlink while preserving the innode and there appears to none. I do not know, however, if this applied to mknod/devices however. But it appears symlinks are pretty safe to ignore. |
Working on this in #6663. Since that uses |
as we use item.hlid now to group hardlinks together, there is no conflict with the item.source usage for symlink targets any more.
as we use item.hlid now to group hardlinks together, there is no conflict with the item.source usage for symlink targets any more.
borg now has the chunks list in every item with content. due to the symmetric way how borg now deals with hardlinks using item.hlid, processing gets much simpler. but some places where borg deals with other "sources" of hardlinks still need to do some hardlink management: borg uses the HardLinkManager there now (which is not much more than a dict, but keeps documentation at one place and avoids some code duplication we had before). item.hlid is computed via hardlink_id function. support hardlinked symlinks, fixes borgbackup#2379 as we use item.hlid now to group hardlinks together, there is no conflict with the item.source usage for symlink targets any more. 2nd+ hardlinks now add to the files count as did the 1st one. for borg, now all hardlinks are created equal. so any hardlink item with chunks now adds to the "file" count. ItemFormatter: support {hlid} instead of {source} for hardlinks
borg now has the chunks list in every item with content. due to the symmetric way how borg now deals with hardlinks using item.hlid, processing gets much simpler. but some places where borg deals with other "sources" of hardlinks still need to do some hardlink management: borg uses the HardLinkManager there now (which is not much more than a dict, but keeps documentation at one place and avoids some code duplication we had before). item.hlid is computed via hardlink_id function. support hardlinked symlinks, fixes borgbackup#2379 as we use item.hlid now to group hardlinks together, there is no conflict with the item.source usage for symlink targets any more. 2nd+ hardlinks now add to the files count as did the 1st one. for borg, now all hardlinks are created equal. so any hardlink item with chunks now adds to the "file" count. ItemFormatter: support {hlid} instead of {source} for hardlinks
borg2 branch supports hardlinked symlinks. |
Is this fixed in borg 1.2? Maybe the FAQ should be updated to stop advertising hardlinked symlinks are not supported?
EDIT: sorry I finally found that borg2 is indeed borg v2 the current master branch in beta. This FAQ section thus still holds. |
This is rather a design limitation of the borg item metadata (in borg < 2) than a bug. It's fixed in master branch, which will be released as borg 2 at some time in the future. |
borg supports hardlinks and it supports symlinks and both are backupped as it should be.
A problem are "hardlinked symlinks".
This part of #2324 is not addressed yet (except that symlinks are not in the documented list of supported hardlinked fs objects).
The problem here is the dual-use of item.source (see #2343), which should be solved first.
Then, hardlinked symlinks could be supported in same way as other hardlinked fs objects.
Note:
The text was updated successfully, but these errors were encountered: