运行ASP.Net网站并使用TinyMCE进行内容管理。用户需要能够上传内容的图像。图像将以网站内容(新闻,文章等)显示,但除了内容之外,不会被任何内容引用。
这些图像是否应该受版本控制(svn),或者上传目录是否应该在需要时传递(备份,测试等)?如果它们应该被版本化,那么最好的方法是什么?
答案 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与其他人共享包含二进制数据的项目。