如何将视网膜图片添加到SVN

19

我需要你的帮助。

我为视网膜显示器制作了像"****@2x.png"这样的图像。但是像这样的图像无法添加到SVN中。

******-no-iMac-2:baz shunter$ svn add retina_images/foo@2x.png
svn: warning: 'retina_images/foo' not found

我知道如何像这样添加资源。

******-no-iMac-2:baz shunter$ svn add retina_images/foo@2x.png@
A  (bin)  retina_images/foo@2x.png

但是我制作了很多图片,所以这样做让我感到很不好。

我真的想知道如何添加类似这样的内容。

******-no-iMac-2:baz shunter$ svn add retina_images/bar/*.png

请帮忙!!


你说得对。但我找不到它。 - Shunter1112
点击您的用户名(或访问http://stackoverflow.com/users/366052/shunter1112),您将看到所有问题的列表。 - Edd
7个回答

23

http://developers.enormego.com/view/add_2x_ios4_resources_svn

这是由于 SVN 中的内部路径识别器。它期望最后一个 @ 符号指定一个修订版本。通过在文件末尾添加一个 @ 符号,很容易地进行修正:

$ svn add Default@2x.png@
A (bin) Default@2x.png

由Shuan(不是我:)提供


19
svn 命令会将 @ 解释为尝试指定 SVN 版本号(@REV 格式),因此... 添加单个文件:
svn add filename@2x.png@

现在svn将最后一个@符号视为@REV指定符,而不是第一个。

要添加多个文件:(每个文件名后面都加上@符号)

ls *2x.png | xargs -I x svn add x@

这将列出所有视网膜图片(*2x.png)的清单(在当前目录),并将输出传递给xargs,它将为每个文件执行svn add命令。 -I x 告诉xargs使用文件名替换'x',所以svn add x@变成了正确的文件名,在结尾添加了'@'符号。


感谢您提供了一个包含解释的正确答案。这就是所有答案应该有的样子。 - hishamaus

7

我几天前遇到了这个问题,我是这样解决的:

berry$ for i in retina_images/bar/*.png
do
   svn add $i@
done

A  (bin)  retina_images/bar/foo1@2x.png
A  (bin)  retina_images/bar/foo2@2x.png
A  (bin)  retina_images/bar/foo3@2x.png
A  (bin)  retina_images/bar/foo4@2x.png

berry$ svn commit

也许这不是解决问题的理想方案,但它起到了作用,我能够继续进行。


5

I did it like this (in terminal)

svn add Images/icon@2x.png@

或者

最好的方法是打开 Xcode,右键点击 image>source control add。这样添加图片时不会显示任何错误。


1
你的第一个答案已经在问题中明确提到了。至于Xcode,问题中并没有说明是否使用或作为选项。 - Adrian Heine

3

像这样做会更容易...

例子:

svn add default@2x.png@2x

为什么你要在末尾添加@2x?只有@就足够了。 - Maen

3

这个问题有点老了,但我注意到还没有人发布一个真正简单的一行命令,可以通过终端添加所有新的图像文件,无论扩展名或"@2x"状态 - 或者删除它们。我在我的bash_profile中有以下几行:

alias svn_addall="svn st | grep '^?' | sed -e 's/@2x.*/&@/' | awk '{print \$2}' | xargs svn add"
alias svn_delall="svn st | grep '^\!' | sed -e 's/@2x.*/&@/' | awk '{print \$2}' | xargs svn rm"

如果您在项目的任何子文件夹中运行svn_addall命令,则它将递归添加全部文件,无论它们的名称中是否带有@2x。

例如,以下所有文件都将被一次性添加:

?       header_bar.png
?       bg@2x.jpg
?       bg.jpg
?       header_bar@2x.png
svn_delall同样可以删除你在Finder中已经删除但还没有从svn中删除的所有那些讨厌的带!标记的文件;)
请注意,这些脚本稍作修改来自我在网上找到的其他人的脚本,但其他脚本通常只针对png(@2x.jpg怎么办?),或者它们只添加视网膜文件而不加其他缺失的“正常”图像文件。

0
我发现最好的方法是通过XCode中的Subversion集成。一旦你设置了SVN集成(XCode>SCM>配置SCM),在“组和文件”窗口中Command+单击项目,然后选择“添加到存储库”。要删除一个项目,请按删除键并在提示是否从源代码控制中删除时选择YES。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接