① ios svn obstruct 怎么解决
很简单,先把文件拷贝到本地,然后右键点冲突的文件,找到svn中的还原,然后再把你本地刚刚拷贝的那个文件和svn上的文件对比,然后看你修改了那些地方,然后再svn上最新版本的基础上进行修改,然后提交。 如果你不想别人也修改你正在修改的文件
② ios svn versions 怎么提交代码 和修改代码
1、Xcode4中苹果有自带的SVN软件------>Organizer------>Repositories 2、SVN checkout到本地后,删除本地file,对服务器有影响吗? 不会影响服务器,当你执行“svn update”时会zai再次被自动下载;当删除后再执行“svn commit”就会在服务器上也对
③ ios 为什么svn上会有git
首先,应该根据你们代码管理的具体情况归纳出使用 SVN 命令的各种场景,总结一套不同场景下的 SVN 命令使用指南或规范。以方便新人上手以及防止不合理的使用 SVN 带来的代码管理混乱。
然后,项目架构要合理以便于更清晰的划分功能模块,减小模块耦合。这样不同的人开发不同的模块,代码同步和合并时发生冲突的可能性就小些。
④ 如何通过svn,git进行优雅的代码集成
谈到代码集成,大部分人可能会想到各种的CI Server,比如CruiseControl、Hudson、Jenkins种种。这些持续集成的工具基本上都是将源码管理工具、构建工具、测试工具等集成起来通过统一的配置来实现多项目、松耦合、自动化、透明化的构建目标的。而深入到某个项目,人们通常是通过maven或一段shell脚本来管理代码间的复杂依赖关系及构建顺序的。很多场景下maven并不好用,比如构建iOS程序时。
我们公司使用的Jenkins构建ios、Android程序时会调用一大段Shell脚本,项目中如果存在代码依赖(比如其他部门开发的SDK),则通过约定目录层次,通过shell 按顺序执行SVN命令分配签出代码后执行构建命令——这么干很丑!一方面,团队成员在每个人的开发环境上都要进行很多约定的设置才能开始工作。另一方面,外部依赖代码的版本不好管理。因此,通过研究,我决定将这些外部代码通过 svn externals来实现。不但开发环境配置简单了,Jenkins构建的代码也精简了不少。同样,我对我的静态博客中皮肤的依赖也改成了Git submole的方式。——这种动态关联,让人感觉轻松不少。
一、svn externals:
cd /path/to/your/codedir
svn pedit svn:externals .
在打开的窗口中填入要依赖的外部代码路径,形如
localDir -r0000 http://the/outer/svn/url
其中,localDir -> 你的代码签出到当前路径后存放的目录名。-r0000 -> 限定svn版本号,可不填则将签出最新代码。
可以输入多行,部署更多的外部依赖。
:wq 保存后继续:
svn up
svn ci -m 'add externals'
再检查一下依赖是否已经都设置好,是否可以build通过,就可以通知其他人签出了。
参考:svn externals 引入外部分支目录 学会使用svn:externals
二、git submole:
以下是本博客代码如何引入主题的脚本:
cd /path/to/your/blog
mkdir themes
mkdir themes/puresam
git submole add [email protected]:hl85/catsup-theme-puresam.git themes/puresam
git add .
git commit -m "Add submole puresam"
git submole init
git push
参考:Git Submole 的认识与正确使用!
⑤ 如何把ios代码放在svn服务器
1.如何使用Xcode5 SVN从公司服务器 check out项目
然后我就有点怀疑,难道Xcode自带的SVN的subversion类型不支持提交到服务器这个功能么。
然后看帮助文档,有这么一句。
If you’re using Subversion, a commit operation copies the changes from selected files into the remote Subversion repository. Therefore, you must be connected to the repository before you can commit changes. (For details, see your repository administrator.)
搞了半天不懂see your repository administrator是什么意思。翻译出来是库管理员。我只想说看他有个毛用。我自能默默自嘲英文差。
4.然后我就想着再继续往下看。Updating or Pulling Changes from a Repository
如何更新和提交更改。然后就看到下面的内容。
Update your project with changes from the repository using the Source Control menu.
For a Git repository, choose Source Control > Pull.
For a Subversion repository, choose Source Control > Update.
For a project that contains both Git and Subversion repositories, choose Source Control > Update and Pull.
For projects with multiple repositories, select the ones you want to update.
Resolve differences by using the left and right buttons to specify which file’s contents to use.
After reconciling all differences, click Pull (Git) or Update (SVN) to complete the operation.
打开Source Control就没有找到Pull和Update。本来就英文差,他妈的刚巧就认得这几句,然后就此作罢。大牛莫要嘲笑我,还请告知我是哪里出了问题。
看了一个问答,XCODE5中怎么上传到SVN服务器,老外给出的结论是:两个办法,一个是用svn client,客户端软件;另一个方法是命令行。One way is using an svn client. The one which is obviously available is the command line svn client.
http://stackoverflow.com/questions/18894195/xcode-5-export-project-to-svn-repository
但是事情不能不做,就在网上找了命令实验了一下,尽可能写的详细点,下次看的时候好懂。随便帮帮跟我一样正在郁闷的人。
1.更改配置(不懂的话就直接跳过吧)
bogon:~ chenshuangchou$open ~/.subversion/config
启动配置文件,然后在配置文件中选择要忽略的文件类型
找到global-ignores一行,去掉注释,编辑成
global-ignores = build *~.nib *.so *.pbxuser *.mode *.perspective*
# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
找到enable-auto-props = yes把注释去掉,在[auto-props] Section声明以下文本文件
*.mode* = svn:mime-type=text/X-xcode
*.pbxuser = svn:mime-type=text/X-xcode
*.perspective* = svn:mime-type=text/X-xcode
*.pbxproj = svn:mime-type=text/X-xcode
2.import命令
首先将本地代码import到版本库
bogon:~ chenshuangchou$svn import /Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper https://192.168.21.248:8443/svn/BuickIOS/ -m "initial import"
3.checkout命令
然后从版本库checkout出来,这个目录就相当于被激活,内部跟服务器地址关联。
bogon:~ chenshuangchou$svn checkout https://192.168.21.248:8443/svn/BuickIOS/ /Users/chenshuangchou/Desktop/BuickIOS
4.add命令
当有新增的文件时用add指令,增加到版本库,然后提交
svn add /Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png
执行这条指令的前提是/Users/chenshuangchou/Desktop/BuickIOS/是从服务器checkout下来的目录,也就是is a working
新增成功的话会有
A(bin)Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png
5.commit命令
提交内容到版本库
bogon:~ chenshuangchou$svn commit -m "添加了一个油耗柱状图" /Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png
提交到版本库成功的话,
Adding(bin)Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png
Transmitting file data .
Committed revision 3.
6.update命令
更新版本库到本地,更新指定目录,svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
bogon:~ chenshuangchou$svn update /Users/chenshuangchou/Desktop/BuickIOS1
更新成功
Updating 'Desktop/BuickIOS1':
ADesktop/BuickIOS1/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png
Updated to revision 3.
回退到版本2:
bogon:~ chenshuangchou$svn update -r 2 Desktop/BuickIOS1/
回退成功的话
Updating 'Desktop/BuickIOS1':
DDesktop/BuickIOS1/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1.png
Updated to revision 2.
冲突
(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件 ,然后清除svn resolved,最后再提交commit)
在提交时发生版本冲突会怎么样
bogon:~ chenshuangchou$svn commit -m "在delegate中加入了一句话" /Users/chenshuangchou/Desktop/BuickIOS/
SendingDesktop/BuickIOS/.git/index
SendingDesktop/BuickIOS/Buickhousekeeper/AppDelegate.h
SendingDesktop/BuickIOS/Buickhousekeeper.xcodeproj/project.xcworkspace/xcuserdata/chenshuangchou.xcuserdatad/UserInterfaceState.xcuserstate
Transmitting file data ...
Committed revision 4.
bogon:~ chenshuangchou$svn commit -m "在delegate中加入了一句不同的话" /Users/chenshuangchou/Desktop/BuickIOS1/
SendingDesktop/BuickIOS1/.git/index
svn: E160042: Commit failed (details follow):
svn: E160042: File or directory '.git/index' is out of date; try updating
svn: E160024:resource out of date; try updating
out ofdate表示版本过期,可能是由于另外的开发者更新了服务器版本,而本地代码与服务器冲突
遇到这种情况,应该先从服务器update一下,然后再提交
bogon:~ chenshuangchou$svn updateDesktop/BuickIOS1/
Updating 'Desktop/BuickIOS1':
Conflict discovered in '/Users/chenshuangchou/Desktop/BuickIOS1/.git/index'.
Select: (p) postpone,
(mf) mine-full, (tf) theirs-full,
(s) show all options:
在这里会有一个选择,选择(s)会显示所有选项的所有注释,如下
(s)show all- showthislist
(e)edit - change merged fileinan editor
(df) diff-full- show all changes made to merged file
(r)resolved - accept merged version of file
(dc) display-conflict - show all conflicts (ignoring merged version)
(mc) mine-conflict- accept my versionforall conflicts (same)
(tc) theirs-conflict- accept their versionforall conflicts (same)
(p) postpone- mark the conflict to be resolved later。
(mf) mine-full- accept my version of entire file (even non-conflicts)
(tf) theirs-full- accept their version of entire file (same)
选择一个之后会继续显示冲突点,直到完。而每一个点都会询问怎么处理。
GDesktop/BuickIOS1/Buickhousekeeper.xcodeproj/project.xcworkspace/xcuserdata/chenshuangchou.xcuserdatad/UserInterfaceState.xcuserstate
Conflict discovered in '/Users/chenshuangchou/Desktop/BuickIOS1/Buickhousekeeper/AppDelegate.h'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: tf
GDesktop/BuickIOS1/Buickhousekeeper/AppDelegate.h
Updated to revision 4.
⑥ ios svn 不小心还原版本了 怎么恢复
svn没有恢复旧版本的直接功能,不过可以使用svn merge命令恢复。
比如说当前HEAD为14,而我要恢复成10版本,怎么做?用svn merge:
1 svn update
2
3 svn merge --revision 14:10
4
5 svn commit -m "restore to revision 10"
可能会很奇怪,因为不理解为什么合并能恢复旧版本。
这里要理解一个关键点,就是svn merge的原理。merge是比较指定版本的差异,然后把这些差异应用到本地工作副本,而-r后的14:10,是指相对于版本14来说版本10的变化(注意,这个版本的次序很重要。),也就是相对版本14,我版本10添加了哪些文件或目录,以及哪些文件添加了哪些行删除了哪些行。
由于在客户端提交应用程序时的误操作,导致修改了基线版本,此处利用两个命令来进行恢复:
1、将客户端恢复合并到指定版本:
1 svn merge -r 112:111 svn://192.168.0.119/UBoot/trunk/u-boot-1.3.3
此步骤将下位机由112恢复到111版本:
2、重新修订基线版本
1 svn commit -m "Undoing change committed in r111."
此步骤将恢复后的111版本提交,但是此时的版本号为113
⑦ 如何在命令行通过SVN命令筛选出修改过的文件并递交
思路:
1,查看所有文件的状态
2,通过文件状态筛选出状态为“M”(修改)的文件
3,递交
解决办法:
1,输入命令:$svn st
查看所有文件的状态,比如:
guigngdemini:proj.ios guigang$ svn st
M channels/91/src/AppController.mm
M channels/91/src/dota_91.plist
M channels/i4/src/AppController.mm
M channels/itools/src/AppController.mm
M channels/itools/src/dota_itools.plist
M channels/ky/src/AppController.mm
M channels/pp/src/AppController.mm
M channels/tb/src/AppController.mm
M channels/xy/src/AppController.mm
M dota.xcodeproj/project.pbxproj
? dota.xcodeproj/xcshareddata/xcdebugger
可以看出我的环境下的输出结果
2,输入命令:$svn st | grep "M" | cut -c 8->modified.txt
以上命令将会把状态为M的文件筛选出来存入modified.txt文件,可以打开此文件查看是不是正确的。
3,只将modified.txt中记录的文件递交到SVN服务器
输入命令:svn ci -m "add buyGoods fun to every channel" --targets modified.txt
比如:
guigngdemini:proj.ios guigang$ svn ci -m "add buyGoods fun to every channel" --targets modified.txt
Sending channels/91/src/AppController.mm
Sending channels/91/src/dota_91.plist
Sending channels/i4/src/AppController.mm
Sending channels/itools/src/AppController.mm
Sending channels/itools/src/dota_itools.plist
Sending channels/ky/src/AppController.mm
Sending channels/pp/src/AppController.mm
Sending channels/tb/src/AppController.mm
Sending channels/xy/src/AppController.mm
Sending dota.xcodeproj/project.pbxproj
Transmitting file data ..........
Committed revision 9413.
⑧ ios中怎么把svn删彻底删除
先把文件都导出来(export),做个备份。
然后更新一下本地的SVN版本,接下来开始删除这个无用 的文件夹:
右键菜单,小乌龟里面有个红色的“X”,OK,就是这个了,点一下。然后你会发现这个无用文件夹变了:
再打开这个文件夹,发现里面的文件都没了,只剩下文件夹这些“空壳”了。接下来,最后一步了:提交(commit)你的SVN,这时,你会发现:
看到了吧:Text status(文件状态)是deleted(已经被删了),点击OK,大功告成!不信,就在更新(update)一下你的SVN看看了!
⑨ ios coner stone svn上怎么创建tag
方法/步骤
在Launchpad选择conerstone
主界面:
左侧工作目录及仓库区域
右侧为主要操作区
首先添加现有的svn仓库,有cloud service 、file Repository、HTTP Server、SVN Server;
我用的是HTTP Server,输入地址,账户信息即可;
下面的例子中,我用的是完整的svn目录设置;实际情况,你可能使用的只是部分;
点击左侧REPOSITORIES ,右侧的主工作区中,branches,tags,trunk;
选具体的项目右键选"check out",签出到工作目录;
当然,也可以随时将svn最新版本,生产新的分支;
同样,选具体的项目右键选"tag",选择tag放置的具体目录即可;
简要介绍一下主功能区的功能;
下图是具体的项目从svn签出到工作区后,右侧的界面;
未签出的界面与它不同;
图中标识了常用的Changed,Modified,Conflicted,Missing,Unversioned;
在工作目录中,常用的操作,包含了update ,commit,export等。
下图中示意了commit;
其他功能也都很棒;等待你去挖掘;
⑩ svn怎么在本地显示版本库内容
可以在命令行下执行 svnlist svn://ip (svn地址)即可显示远程svn内容。如果你是windows操作系统,可以用tortiosSVN 桌面空白处单击右键 -》 tortiosSVN -》repo browser 。输入svn地址 登陆后即可浏览。