Subversion和图像上传的最佳实践

时间:2009-01-23 21:00:52

标签: svn

运行ASP.Net网站并使用TinyMCE进行内容管理。用户需要能够上传内容的图像。图像将以网站内容(新闻,文章等)显示,但除了内容之外,不会被任何内容引用。

这些图像是否应该受版本控制(svn),或者上传目录是否应该在需要时传递(备份,测试等)?如果它们应该被版本化,那么最好的方法是什么?

4 个答案:

答案 0 :(得分:6)

内容不是应用程序的一部分,只是您运行的实例,因此应将其添加到备份而不是SVN存储库。如果有自己的应用程序,我只会向SVN添加图像。

答案 1 :(得分:1)

没有理由不在您的版本管理存储库中存储图像,它是一个很好的工具,用于处理心灵变化,谁做了什么以及如何随着时间的推移而发展。

您唯一需要做的就是确保您对这些文件具有needs-lock属性 - 您想要的最后一件事是用户获取文件,修改它,然后尝试检查它只是为了找到其他人已经修改过了。通常,由于SVN的合并能力,这不是问题,但合并图像文件有点棘手。因此,将needs-lock属性置于其中,并且一次只有1个用户可以修改图像。

啊..只是再读一遍,你的意思是用户上传的内容不是你网站的一部分吗?在这种情况下,为什么你需要这些图像 - 当然要支持它们,但除了现场网站以外,你在其他任何地方都需要它们吗?

答案 2 :(得分:1)

我认为你想定期备份这些图像。

SVN很棒,但是如果你想将它用于用户内容,你必须在你的应用程序的前端实现SVN,否则它不会有任何用处。

如果您有SSH访问权限,则可以安排作业定期备份图像。

答案 3 :(得分:0)

我通常会为图像创建一个不同的颠覆控件。假设您有一个由源代码和图像组成的项目,我创建了两个颠覆,如下所示:

$ svnadmin create my_project

$ svnadmin create my_project_images

通过对图像进行任何更改,我只是从subversion控制中删除该图像,然后添加修改后的图像。这对于图像改变的次数远小于源代码的次数非常有用,源代码位于my_project subversion控件之下。这样我就可以使用SVN与其他人共享包含二进制数据的项目。