SVN-原始文本丢失

时间:2017-03-26 14:38:51

标签: svn tortoisesvn smartsvn

已经沮丧...尝试更新/提交/清理Tortoise SVN但总是收到有关原始文本丢失的通知。

在SO和网络上发现了一些帖子/问题,没有任何帮助:

pristine svn-base file missing - 建议清理原始文件,在我的情况下,它是未找到的“原始文本”。

pristine svn-base file missing - 建议使用smartSVN点击“修改” - >验证管理区域 - 我刚刚下载的智能SVN中不再存在...

Error in Netbeans & Svn: Pristine text not found 没有答案......

任何人 - 请帮忙吗?

3 个答案:

答案 0 :(得分:5)

Subversion工作副本格式不是特别健壮,并且它偶尔会被破坏并不奇怪。当发生这种情况时,通常不值得修复它。如果svn cleanup无法应对,则最好:

  1. 查看一份新的工作副本。
  2. 使用您喜欢的文件比较工具(MeldWinMergeKDiff3,等等)从损坏的工作副本中复制待处理的更改。
  3. 鉴于Subversion是一个集中式版本控制系统,您不应该丢失更改列表之外的重要信息,因为其他所有内容都存储在存储库中。

答案 1 :(得分:1)

有一个简单的方法。对同一数据库/主干进行新的SVN检出。 在那之后,请转到rupted_database /找到.svn文件夹。将该文件夹重命名为.svn_old(使用“ corrupted_database”目录mv corrupted_database/.svn corrupted_database/.svn_old中的命令)

现在转到“ fresh_checkout”并找到.svn文件夹。使用命令cp -r fresh_checkout/.svn corrupted_database/

将此文件夹复制到rupted_database

现在cd corrupted_database; svn up并检查其工作情况。

答案 2 :(得分:0)

我刚刚遇到了同样的问题。原始文本实际上在

methods: {
  handleClick (event) {
    if (this.onClickCallback) {
      this.onClickCallback(event)
    } else {
      this.$router.push({ name: 'clothingItem', ... })
    }
  }
}

通过检查其内容,我可以找到它

.svn/pristine/09/09verylongnamereportedbysvncleanup.svn-base

另一种方法是直接访问SVN数据库:

./local/foobar/somefile

删除文件(将其移动到其他位置,例如将其重命名为“ .bak”),在该文件上运行sqlite3 .svn/wc.db sqlite> SELECT repos_path FROM nodes WHERE checksum LIKE '%7685df22%'; path/to/the/file/that/got/corrupted sqlite> .quit svn cleanup,然后查看应用先前保存的副本中的所有更改