在另一个问题上使用克里斯的答案 ,我可以pre-snapshot我的git仓库的历史。 由于其中一个文件不是我的历史的一部分,但只在快照中,现在的第一个原始提交也包含删除此文件。 我如何撤消这个? 起初我以为这是相反的如何从git的历史中删除敏感文件 ,但实际上我不想插入一个文件到历史logging,但只是从历史中删除删除。
支持数据服务的反删除或延迟/批处理删除是相当常见的要求。 我想知道的是如何以一种RESTful的方式来实现这一点。 我在几个不同的select之间撕裂(其中没有一个对我来说似乎非常有吸引力)。 我相信,在这些不同的选项中,通常需要一个API,它将所有标记为已删除的资源都返回给特定的资源types。 这里有一些我曾经考虑的选项和一些优点/缺点: 将资源标记为已删除的选项: 使用HTTP DELETE将资源标记为已删除。 使用HTTP PUT / POST来更新已删除的标志。 这不正确,因为它将本质上是从HTTP DELETE方法中删除的内容映射到其他HTTP方法。 GET-ing资源标记为删除时的选项: 为标记为已删除的资源返回HTTP状态404。 清洁和透明,但我们如何区分真正被删除的资源和被标记为已删除的资源之间的区别。 返回HTTP状态410.提供方式来区分不同的情况,但是技术上来说410“被认为是永久性的。具有链接编辑能力的客户端应该在用户批准后删除对Request-URI的引用。 在这里“预计”和“应该”可能有足够的摆动空间。 不知道在客户端支持/理解410。 返回HTTP状态200并且包括标志字段指示资源被删除。 这看起来很奇怪,因为首先删除它的想法是因为你真的希望它不出现。 这将过滤掉已删除资源的责任推到了客户端。 包含此已删除资源的回复选项: 省略被删除的资源。 干净简单。 但是如果你真的想知道被删除的资源呢? 将它们与字段一起包括在内,表示它们已被删除。 这将过滤掉已删除资源的责任推到了客户端。 如果您只想通过活动或已删除的资源进行分页,分页会变得非常棘手。 更新标记为删除的资源时的选项: 使用HTTP状态404.资源是否正确? 但是,怎样才能区分标记为已删除的资源和实际删除的资源。 404响应中的HTTP主体可能会在这里消除歧义,但是客户端仍然会parsing/解释你的身体以消除歧义。 也许响应标题可能有帮助吗? 哪一个? 自定义标题? 使用HTTP状态409以及有关资源如何首先被取消删除的消息。 取消删除标记为删除的资源的选项: 使用HTTP PUT / POST进行资源更新操作,并将其标记为活动状态。 只有当您没有为资源的GET操作返回一个HTTP 404时,它才会起作用,因为它不会因为PUT / POST而导致资源“找不到”(404)。 使用HTTP PUT / POST进行资源的创build操作。 这里的问题是哪些数据优先? 在创build操作中发送的数据? 或者正在取消删除的数据? 将其从任何其他将返回的查询中筛选出来。 […]
我们意外删除了我们的Subversion版本库中的'tags'文件夹,我们只打算删除一个特定的标签。 获取“标签”文件夹的最简单方法是什么? 我们使用TortoiseSVN作为我们的客户端,我认为当我进入repo浏览器并显示日志时,会出现类似于您在工作副本的类似对话框中看到的类似于“恢复此版本的更改”的内容。 但是那里没有这样的命令…