git:签入符号链接目录中的文件失败

问题描述 投票:0回答:1

我有一个由工具生成的带有 regular-files and generated-files 的项目目录。 生成的文件常规文件一样重要→我也希望在git存储库中拥有生成的文件

问题是我在内存文件系统中使用构建目录,在常规文件系统上使用源目录 generated-files 位于 build-file-system 的子目录中,称为 gen,而 gen 是到 source-file-systemsoft-link

构建

...
gen/libsq3sqlite3.meta
...

来源

...
gen -> /path/to/build/gen
...

如果我执行

git add gen/libsq3sqlite3.meta
我会收到错误消息

  • 致命:路径规范“gen/libsq3sqlite3.meta”超出了符号链接

如果我首先执行

readlink -f gen/libsq3sqlite3.meta
,我会得到真正的路径

  • /一些/真实/路径/到/gen/libsq3sqlite3.meta

如果我使用这个真实路径我得到

  • 致命:/some/real/path/to/gen/libsq3sqlite3.meta:'/some/real/path/to/gen/libsq3sqlite3.meta'位于'/my/rep/project'的外部存储库

我想要

  1. git 应该接受 gen-subdirectory 作为 regular-directory
  2. git 应该将 gen-subdirectory 中的每个文件 视为 regular-file
  3. git 应该相对于 source-directory 对待 gen-subdirectory always,并且 always 使用 filesource-directory-pathnot build-directory -路径
linux git symlink
1个回答
0
投票
可以用

mount 替换 软链接

 :

mount --bind srcDir tgtDir


唯一的问题是这个安装

have要像root手那样完成not在重新启动后不添加到/etc/fstab

文件中

© www.soinside.com 2019 - 2024. All rights reserved.