This issue is about 2 years old now (for me). Current answer is: can't be done.
我正在使用git
,但我相信这并不取决于您使用的是哪一个,即使它是资产服务器。
请注意,我正在关注所有内容in the manual以及what I've found around。
库重建可能需要几分钟到几小时,具体取决于Unity认为需要工作的程度。
虽然这不是一个关键问题(它不会停止工作流程)但它仍然很大。 由于这个问题我们没有完全使用git。将历史记录遗留给旧提交甚至简单changing a parallel branch can become a nightmare是不切实际的。所以我们总是避免这样做,除非它是至关重要的。
有很多东西会触发库重建,这里有几个已知的:
标题中的问题是:如何防止图书馆继续像这样继续重建?
至于一些似乎合理的预期但无效的答案......
如果我提交库,它将无法工作,因为即使只是在打开Unity之前检查旧提交并返回到同一个提交也将触发库重建。
名为“缓存服务器”的“库网络缓存”无法解决任何这些问题。它确实使它更快,有时候,特别是用于检查新机器。但它还远远不够好。它仍然可能需要几个小时。
答案 0 :(得分:0)
作为滚动文件到旧版本,然后回到最新版本触发重建,我只能想象Unity正在查看文件的时间戳,至少。它可能也在查看树 - 存在哪些文件等,它可能使用内容哈希,甚至是树结构。
有趣的是 - 在Unity关闭的情况下 - 以保持时间戳的方式将整个资产树复制到第二个位置,然后签出旧提交,然后再检查当前的提交,然后将副本复制回来,再次,保持时间戳。 然后打开Unity并查看是否要重建。如果是这样,我不知道它是如何确定它需要这样做(存储文件驻留在磁盘上的位置,在块级别下来?)。
如果它有效,它将只允许你一个技巧 - 检查旧的提交,然后再检查当前的提交 - 而不会打扰事情。它不会让你只是去旧提交,但没有重建,因为旧提交将没有时间戳,即使你伪造旧文件,新/移动/删除文件,校验和等。,也可以产生重建。
另一种选择是弄清楚Unity在哪里做的事情,然后将它(或几个)包装在git repo(或几个)中。这将允许您在库重建之前,期间和之后对它们执行git status
,以查看它实际上在做什么。然后,您实际上可以将时间戳技巧与记录Unity生成的资产blob的第二个repo混合,并将它们编写为一致工作,以防止Unity注意到更改。
我需要更多信息才能更进一步。我几年没用过Unity了。