mac 10.15.5版本下 svn 命令的使用

mac 10.15.5版本下 svn 命令的使用,第1张

简单的梳理了一下,因为花费时间比较久,一些过程忘记了,回头换台电脑再试一下。到时候再改这个文章。

在整理svn服务器文件目录时,因为和本地working copy的文件目录对应不上了。
因此需要使用到以下命令

但是在 10155版本下,svn的命令不可用了
网上有相关的教程,大部分都是以下的这种报错。

和以下的解决方案

但对于我并没有用,网上也没有资料可以借鉴

这时候准备去重装 svn
在运行了以下命令之后

报了以下错误

没有修改这个目录文件的权限

于是想升级一下 HomeBrew
在执行了以下命令之后

报了以下错误

使用以下命令修改了权限。

之后的一系列 *** 作忘记了,应该是升级了 HoneBrew和svn

然后开始报错

表示需要 lz4

可能会提示本地已经有了 lz4

如果不支持直接link

之后还有一些类似的错误。直接重复以上行为。
当我使用 svn 命令不报错之后。
使用 svn info 报出了一下错误

使用一下命令搞定

至此svn 命令都可以使用。

如果你想省事,就下载了内置了Apache的SVN服务器,推荐collabnet subversion Edge版,免费,安装配置简单,基本一个安装包装好就能用;
如果你一定不想和Apache集成使用,那么就去svn官网下载:
但其中大部分都和Apache绑定了。
客户端的话,最常用就是TortoiseSVN了,到这家的官网下载。另外如果和Eclipse集成使用的话,有subeclipse插件,到SVN官网下载。

1如何使用Xcode5  SVN从公司服务器 check out项目

Choose Source Control > Check Out

Select the repository you want to check out, and click Next

You can select your repository from the Repositories tab, the Favorites tab, or the Recents tab If you know the location of the repository you want to check out, you can also enter the address manually

If Xcode is unable to automatically identify the trunk and branches, use the browser window to select the correct project location, and click Next

In the Checkout window, select the branches and working copies to check out, and click Next

You will be presented only with the necessary options for your repository If your project contains only one working copy, you will only have to select the branch to checkout If your project doesn’t contain branches, you will only be given an option of working copies to checkout If you project is a single working copy with no branches, this dialog will be skipped entirely

Select the location to store the working copy, and click Check Out

2当有修改时,在Source Control里面可以做点什么,我试了下commit,可以提交到本地,但是没有提交到服务器,中间包括-1012错误,然后配置git用户名跟邮箱。然后填写版本注释,然后就提交,看似提交成功,服务器上却没有。

3Push local changes:我点击了试试,就出来下面这个,我有点疑惑,后来发现人家是

然后我就有点怀疑,难道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

>

但是事情不能不做,就在网上找了命令实验了一下,尽可能写的详细点,下次看的时候好懂。随便帮帮跟我一样正在郁闷的人。

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

2import命令

首先将本地代码import到版本库

bogon:~ chenshuangchou$ svn import /Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper  >

3checkout命令

然后从版本库checkout出来,这个目录就相当于被激活,内部跟服务器地址关联。

bogon:~ chenshuangchou$svn checkout >

4add命令

当有新增的文件时用add指令,增加到版本库,然后提交

svn add /Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1png

执行这条指令的前提是/Users/chenshuangchou/Desktop/BuickIOS/是从服务器checkout下来的目录,也就是is a working copy

新增成功的话会有

A  (bin)  Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1png

5commit命令

提交内容到版本库

bogon:~ chenshuangchou$ svn commit -m "添加了一个油耗柱状图" /Users/chenshuangchou/Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1png

提交到版本库成功的话,

Adding  (bin)  Desktop/BuickIOS/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1png

Transmitting file data

Committed revision 3

6update命令

更新版本库到本地,更新指定目录,svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

bogon:~ chenshuangchou$ svn update /Users/chenshuangchou/Desktop/BuickIOS1

更新成功

Updating 'Desktop/BuickIOS1':

A    Desktop/BuickIOS1/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1png

Updated to revision 3

回退到版本2:

bogon:~ chenshuangchou$ svn update -r 2 Desktop/BuickIOS1/

回退成功的话

Updating 'Desktop/BuickIOS1':

D    Desktop/BuickIOS1/Buickhousekeeper/ViewControllers/CarViewController/FuelManageViewController/lastmouth_color1png

Updated to revision 2

冲突

(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件 ,然后清除svn resolved,最后再提交commit)

在提交时发生版本冲突会怎么样

bogon:~ chenshuangchou$ svn commit -m "在delegate中加入了一句话" /Users/chenshuangchou/Desktop/BuickIOS/

Sending        Desktop/BuickIOS/git/index

Sending        Desktop/BuickIOS/Buickhousekeeper/AppDelegateh

Sending       Desktop/BuickIOS/Buickhousekeeperxcodeproj/projectxcworkspace/xcuserdata/chenshuangchouxcuserdatad/UserInterfaceStatexcuserstate

Transmitting file data

Committed revision 4

bogon:~ chenshuangchou$ svn commit -m "在delegate中加入了一句不同的话" /Users/chenshuangchou/Desktop/BuickIOS1/

Sending        Desktop/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   of  date表示版本过期,可能是由于另外的开发者更新了服务器版本,而本地代码与服务器冲突

遇到这种情况,应该先从服务器update一下,然后再提交

bogon:~ chenshuangchou$ svn update  Desktop/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    - show this list

(e)  edit             - change merged file in an 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 version for all conflicts (same)

(tc) theirs-conflict  - accept their version for all 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)

选择一个之后会继续显示冲突点,直到完。而每一个点都会询问怎么处理。

G   Desktop/BuickIOS1/Buickhousekeeperxcodeproj/projectxcworkspace/xcuserdata/chenshuangchouxcuserdatad/UserInterfaceStatexcuserstate

Conflict discovered in '/Users/chenshuangchou/Desktop/BuickIOS1/Buickhousekeeper/AppDelegateh'

Select: (p) postpone, (df) diff-full, (e) edit,

(mc) mine-conflict, (tc) theirs-conflict,

(s) show all options: tf

G    Desktop/BuickIOS1/Buickhousekeeper/AppDelegateh

Updated to revision 4

Windows环境我般使用TortoiseSVN搭建svn环境Mac环境由于Mac自带svn服务器端客户端功能所我装任何第三软件前提使用svn功能需做简单配置
我首先看何Mac环境搭建svn服务器端环境
创建代码仓库用存储客户端所传代码
我先/User/apple目录新建svn目录svn目录创建仓库目录
打终端创建mycode仓库输入指令:svnadmin create /Users/apple/svn/mycode
指令执行功发现硬盘/Users/apple/svn/mycode目录目录结构:
配置svn用户权限
主要修改/svn/mycode/conf目录三文件
1打svnserveconf列配置项前面#空格都掉
[java] view plaincopy
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
anon-access = read代表匿名访问候读若改anon-access = none代表禁止匿名访问需要帐号密码才能访问
2打passwd[users]面添加帐号密码比:
[java] view plaincopy
[users]
mj = 123
jj = 456
帐号mj密码123
3打authz配置用户组权限
我passwd添加用户配同用户组同用户组设置同权限没必要每用户进行单独设置权限
[groups]面添加组名用户名用户间用逗号(,)隔
[java] view plaincopy
[groups]
topgroup=mj,jj
说明mjjj都属于topgroup组接再进行权限配置
使用[/]代表svn服务器所资源库
[java] view plaincopy
[/]
@topgroup = rw
面配置说明topgroup组所用户所资源库都读写(rw)权限组名前面要用@
用户名用加@比mj用户读写权限
[java] view plaincopy
[/]
mj = rw
至于其精细权限控制参考authz文件其内容
4启svn服务器
前面配置关键看能否启服务器若启前面做再工作徒劳
终端输入列指令:svnserve -d -r /Users/apple/svn
或者输入:svnserve -d -r /Users/apple/svn/mycode
没任何提示说明启功
5关闭svn服务器
想要关闭svn服务器效办打实用工具面监视器
综合述我轻松搭建svn服务器环境

可以关联 我也是昨天才装的 不过图形化的不好找 都是命令行 有点不方便
安装直接打开终端输入下svn 然后下一步就可以了
*** 作的话 得熟悉下了
附上几条命令
从本地导入代码到服务器(第一次初始化导入)
svn import /Users/apple/Documents/eclipse_workspace/weibo svn://localhost/mycode/weibo --username=mj --password=123 -m "初始化导入"
从服务器端下载代码到客户端本地
svn checkout svn://localhost/mycode --username=mj --password=123 /Users/apple/Documents/code
提交更改过的代码到服务器
1 cd/Users/apple/Documents/code
2 输入提交指令:svn commit -m "修改了mainm文件"
更新服务器端的代码到客户端
定位到客户端代码目录后,比如上面的/Users/apple/Documents/code目录,然后再输入指令:svn update
往版本库中添加新的文件 svn add file
提交 svn commit -m “message”
显示文件和子目录状态 svn status -v path
不再版本控制 M内容呗修改 c发生chongtu a:预定加入到版本库 k:被锁定
删除svn delete path -m “delete test file“
查看日志 svn log path
比较差异svn diff path(将修改的文件与基础版本比较)

svnserve
-d
-r
/path/svn
特别注意,路径一定是SVN的目录,不是其中一个版本库的目录,不然,能正常启动,就是访问有问题
没有任何输出,则启动成功!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10370334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-08
下一篇 2023-05-08

发表评论

登录后才能评论

评论列表(0条)

保存