3

我在办公室里被称为“替补人”。作为一名开发人员,我经常在项目之间来回切换,因此当我返回它们时,我并不总是准确地记得每个项目中存在哪些变化。我通常必须将我的本地更改与我们的源代码控制系统中的更改进行比较,然后我最终会记住这一切。问题是,我并不总是有这样的奢侈。有时我必须快速为客户构建一些东西,所以我备份了工作目录,这样我就可以从源代码管理中获取最新的文件,并快速构建 DLL - 同时知道另一个(in-进展)变化是安全的。

问题是我现在在每个项目目录中都积累了一堆备份文件夹,这使得找到我正在寻找的特定更改变得更加困难。虽然我的实践已经发展到我总是花时间给每个备份文件夹一个信息丰富的名称,但我开始认为我最好还是编写自己的工具。

例如:如果我在 Windows 资源管理器中选择了几个文件夹,我希望有我自己的上下文菜单项来触发我自己的备份应用程序。此应用程序会提示我输入备份名称和描述。然后它将选定的文件夹移动到特定的集中备份目录 - 它还将在其中生成一个“readme.txt”文件,概述备份详细信息。此外,备份也将按日期/时间进行组织。我觉得这会改进我的备份过程,并促进未来的查找。

但是,我不禁想知道这样的工具是否已经存在。当然,在备份方面一定有人像我一样痴迷。

您知道任何可以帮助我改进备份的工具吗?

我知道这篇文章,但与我想要的并不完全一致。我更愿意将备份保存在同一台机器上——我会自己处理将它们转移到其他机器上。

更新

澄清一下:如果我正在处理任务 A,突然我需要为客户端(任务 B)构建一些东西,我必须备份我迄今为止为任务 A 所做的内容,并从源代码管理中获取最新的内容到工作目录中. 然后我开始并完成任务 B,然后恢复任务 A。这是一个理想的、简洁的场景。但有时,我一周后才回到任务 A,或者更久——因为我遇到了任务 C、任务 D 等——所有这些都会影响同一个项目。现在,如果计划签入这些更改,那么我可能会随着我的进步而从签入中受益(但老实说,在这家公司,我们通常等到完成后再签入 - 这意味着更少签入未完成的代码)。所以我不确定我的每个备份是否应该等于一个分支 - 因为我有时会过度使用我的备份。

4

9 回答 9

10

我想你想要的是一个分布式版本控制系统,比如 git。

于 2008-12-05T15:57:12.737 回答
6

首先,您现有的源代码控制系统可能已经以分支的形式支持这一点。与其只是复制工作目录,不如将其作为一个单独的分支提交,您可以在其中保留该客户端的应用程序版本。

然而,正如skiphoppy所说,分布式源代码控制系统更适合于此。我很喜欢 Bazaar,但 git 也很受欢迎(虽然我不知道它对 Windows 的支持有多好,因为它主要是为 Linux 内核开发的 *nix 工具)

于 2008-12-05T16:01:04.227 回答
3

使用TortoiseSVN的Subversion将为您提供此功能。概念不同(修订,而不是“备份名称”)。您提到的 readme.txt 在 Subversion 日志中进行了总结。您提供的任何评论都可以用来指导其他人查看修订版。查看关于 Subversion 的 Wikipedia 页面以及下载它和TortoiseSVN的主页

于 2008-12-05T16:04:14.720 回答
1

CloneZilla,备份您的整个硬盘分区,免费且可靠。我用它代替了 Acronis Echo Server,它在 8 分钟内恢复了我的整个系统。

于 2008-12-05T16:16:08.533 回答
1

正如 skiphoppy 所说,DSVN 确实可以提供帮助。Git 提供了搁置你现在正在处理的东西的能力,这样你的工作副本是干净的,但你可以在完成后将当前的工作集从架子上拉下来。这似乎是你真正想要的。

如果您使用 Perforce,也有几个基于 tar 的实用程序可以执行此操作,但我还没有使用它们。

于 2008-12-05T16:17:54.553 回答
1

改变你的工作方式怎么样,听起来如果你继续这样下去,总有一天事情会变得很糟糕。在更改过程中需要构建一个 dll 并且必须备份正在进行的工作,这很公平,但是一旦发布完成,然后立即将您的更改与发布版本重新集成。我永远不会让自己拥有同一个应用程序的多个备份,但是,嘿,这只是我。

于 2008-12-05T16:19:21.210 回答
1

我使用混合备份www.hybridbackup.com.au在。花费一点,但业务是我来自并且我确定大多数其他人的数据。

无论如何,只是想指出你应该有一个很棒的备份系统,这样你就不用担心这些事情了。

于 2011-11-17T05:39:44.083 回答
0

我认为每天晚上检查是一个非常合理的做法。有时我每天检查 3 或 4 次,有时 20 次(实际上每次我的代码都在工作)。

如果您的代码始终签入,您应该可以轻松地同步到不同的分支而无需备份任何内容。

如果您无法在一天结束时检查您的更改,一个非常合理的答案是丢弃它们。你很可能在某个洞里难以自拔,第二天你将在一个小时内复制这项工作,并且比第一次做得更好。此外,如果您长时间使用损坏的代码,您将如何测试?

最后,如果你的代码真的不能每天都检查到构建中(它实际上在某些情况下会发生,不管我在上一段中说了什么),分支。

没有更多的备份。

于 2008-12-05T17:22:40.460 回答
-2

我用:

ZenOK在线备份我的文档和小文件(照片、视频和大文件)

爱它。

于 2011-01-21T21:04:13.540 回答