SVN专题(Visual SVN Server + TortoiseSVN + Visual SVN)
参考资料:
1、Windows环境下搭建SVN服务器。原文地址:https://blog.csdn.net/lu1024188315/article/details/74082227
2、Git|SVN学习目录:https://blog.csdn.net/lu1024188315/article/details/74080006
3、搭建SVN服务器详细教程:https://blog.csdn.net/daobantutu/article/details/60467185
4、VisualSVN Server提交前必须写信息(备注):https://blog.csdn.net/zyf_balance/article/details/51332056
5、svn 服务器设置,提交时强制注释(Windows版):https://blog.csdn.net/feihu_guest/article/details/39499063
下载地址
VisualSVN Server(免费)
http://www.visualsvn.com/server/download/
TortoiseSVN
http://tortoisesvn.net/downloads.html
Visual SVN(VS插件)
Eclipse SVN插件
官方下载: http://www.eclipse.org/subversive/downloads.php
=======================================
一、Visual的安装和使用
1 VisualSVN Server安装
【1 】几乎都是下一步。
【2】 选择 visualVSN服务器和管理控制台 或只有管理控制权限
【3】选择程序安装的路径、Subversion Repository(库)的路径和所使用的协议和端口。
【4】接着就是复制文件的过程。
【5】安装完成后会询问你是否需要运行VisualSVN Server Manager(一个非常有用的管理工具)
【6 】打开“ VisualSVN Server Manager ”,如下:
二、 创建版本库
修改URL:
查看IP命令:
下面我示范添加一个代码库【Repository】,如下图:
点击Repository右键
按上图所示,创建新的代码库,在下图所示的文本框中输入代码库名称:
【注】上图中的CheckBox如果选中,则在代码库StartKit下面会创建trunk、branches、tags三个子目录;不选中,则只创建空的代码库StartKit。
点击OK按钮,代码库就创建成功了。
创建完代码库后,没有任何内容在里面
下面,我们开始安全性设置,在左侧的Users上点击右键:
输入上面的信息,点击OK,我们就创建一个用户了。按照上面的过程,分别添加用户其他用户就可以了。
下面我们开始添加这些用户到我们刚才创建的项目里。
点击刚才创建的库,Lenovo,右击选择属性(Properties)
点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,
注意这里的权限设置,要选择好。
点击"确定"按钮,上面的用户就具有了访问StartKit代码库的不同权限。
=======================================
三、检出项目和上传代码
3.1 检出项目(以lenovo项目为例)
创建版本库lenovo,右键点击lenovo文件夹,选择copy URL toCLipboard,就是复制统一资源定位符(URL)到剪贴板中
在电脑空白处单击右键,选择SVN检出(SVN Checkout...)
之后弹出对话框,将刚出的地址粘贴到第一个地址栏中
再选择导出目录,点击确定。会弹出输入用户名和密码的对话框,而且会在你选择的导出目录处新建一个lenovo文件夹。
输入刚才创建的用户名和密码。确定,然后会弹出检出界面。
=======================================
3.2上传文件到SVN
将要上传的文件放到导出目录中, 右键TortoriseSVN—Add,再右键提交
选择后弹出提交对话框
四、VisualSVN Server提交前必须写信息(备注)
Visual SVN Server下 右键项目 “所有任务”》“Manage Hooks” 》选中Pre-commit hook然后edit编辑,添加如下代码
@echo off
::
:: Stops commits that have empty log messages.
::
@echo off
setlocal
rem Subversion sends through the path to the repository and transaction id
set REPOS=%1
set TXN=%2
rem check for an empty log message
svnlook log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else exit 0
:err
echo. 1>&2
echo 信息(备注)不允许为空,请填写信息然后重试 1>&2
exit 1
在SVN的Repositories路径中: Repositories\RedAndGreen\hooks 创建pre-commit.bat批处理文件,内容如下:
@echo off
rem SVN强制写注释的hooks脚本(Windows)
rem 文件名是: pre-commit.bat,放到repository/hooks目录下
setlocal
set SVN_BINDIR="C:\Program Files\VisualSVN Server\bin"
set REPOS=%1
set TXN=%2
rem check that logmessage contains at least 10 characters
rem .....代表5个字符
%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo [Commit failed]: Empty log message not allowed. 1>&2
exit 1
五、SVN常用操作
重新定义SVN的URL,右键(TortoiseSVN) → Relocate → 输入你新的IP地址
六、SVN常用图片及含义
原文地址:http://blog.csdn.net/xh16319/article/details/10582455
绿色的勾:图标表示这是一个最新取出的工作副本,他的Subversion状态是normal。
灰色的勾:灰色图标表示”只读”,如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个锁。
红色感叹号:当你开始编辑一个文件,这个文件的状态就会变成modified,图标也会变成红色圆圈带一个感叹号。这样你就可以轻易的知道自从上次更新以来都有修改过哪些文件,需要提交哪些文件。
黄色感叹号:三角符号带感叹号,表示在一次update中产生了一个冲突(conflict)。
蓝色加号:意味着这个文件或文件夹已经被计划加入到版本控制之下。
红叉叉:表示相应文件或文件夹被计划删除(deleted),或者表示文件缺失。
灰色一行:表示不受版本控制,忽略版本控制。
蓝色问号:暂时还没收到版本的控制,但是没有被忽略。
锁扣:表示文件被锁定,他的Subversion状态是normal,必须先释放锁才能让别人的更改提交。
SVN图标无法正常显示问题解析:
1.在Myeclipse或者Eclipse中使用SVN插件作为版本控制器,一直以来都是正常使用的。但是突然哟一天,project下的files的版本号和提示图标都不见了,经过检查SVN是正常的。
开始的时候是把wrokspace下的.metadata删除,然后重新将project导入workspace下,即可正常使用。
但是现在发现一种更为方便的方法:
进入 到:windows->preferences->General->Appearance->LableDecorations勾选其中的SVN项即可。或者,还可以打开windows->preferences->Team->SVN中做相关设置。
2.最近更新了SVN软件,更新后发现,同步文件夹没有打对勾的标记,网上都说检查SVN设置:
右键->TSVN->设置->样式->重叠图标->Statuscache
里面有三个选项:
1Default
2Shell
3None
如果是前面两个,应该就有svn图标,如果是none,就没有。
但都解决不了问题,后来用安装文件的修复功能解决了此问题,即双击安装文件,选修复,之后重启系统就可以了。这似乎是SVN更新后的普遍问题。
项目视图 The Package Explorer view
- 已忽略版本控制的文件。可以通过Window → Preferences → Team → Ignored Resources.来忽略文件。
A file ignored by version control. You can control what resources will be ignored by going to Window → Preferences → Team → Ignored Resources.
- 未纳入版本控制的文件,一般是新增,尚未提交的文件。
A file not under version control. These are typically new files that you have not committed to the repository yet.
- 本地重命名或移动到其它目录的文件。
A versioned file that needs to be added to the remote repository. These are typically files you have either renamed, or moved to a different directory.
- 本地删除的目录。
A deleted folder. These are folders that you have deleted locally without yet committing the changes to the repository. Note that files are usually removed from the view when they're deleted locally, so they are normally not seen with this icon.
- 没有任何改动的文件。
A file with no local changes.
- 发生改动,尚未提交的文件。
A file with local, uncommitted changes.
- 处于锁定状态的文件。
A locked file.
- 有冲突没有解决,就更新或提交的文件。
A conflicted file. These are typically files that had a commit/update conflict that you marked to resolve later.
- 有目录树冲突的文件。一般在最近一次更新后,资源库上的文件被移动、删除或重命名。
A file that has a tree conflict. These are typically files that have local changes, but have since been moved, removed, or renamed in the repository since the last local copy update.
- 引用外部项目的文件,不能提交到本项目的资源库里。
A file that is external to the project. Linked external files cannot be committed to the repository.
- 有分支版本的文件。这些文件属于另外一个不同的工作目录而不是属于本地的父目录。
A file that has been switched. These are files which belongs to a different working copy than their local parent directory.
迁出 Outgoing view
- 本地有更改的文件。
A file whose contents have been modified and will be committed to the repository.
- 本地新增的文件。
A file that will be newly added to the repository. This may coincide with a file removal in cases where a file is moved or renamed..
- 本地删除的文件。
A file that will be removed from the repository. This may coincide with a file addition in cases where a file is moved or renamed.
- 本地文件属性发生变化了的文件。
A file with property changes, in the Commit dialog. On the Synchronize tab, property changes are currently reflected as a normal file modification ().
迁入 Incoming view
- 需要更新的文件。
A file that has content changes committed to the repository that will be applied to the local copy.
- 需要迁入的新增文件。
A new file that will be added to the local copy from the repository. Like the outgoing file addition, this may be the result of a move or rename.
- 资源库中删除了的文件。
A file that will be removed from the local copy because it has been removed from the repository. Like the outgoing file removal, this may be the result of a move or rename.
冲突 Conflict view
- 资源库和本地同时有修改的文件。
A file that has been changed in both the local copy and repository independently, causing a need for conflict resolution. Fixing this condition involves opening up the conflict view or forcibly overwriting changes locally or remotely.
- 远程资源库上已经被重命名或移动、删除的文件。
A file that has a tree conflict. This can occur when there are new changes to a file on one end (either local or remote), and the file is moved, removed, or renamed on the other.
“与资源库同步”选项打开的界面上的一些按钮 Others :
Finally, the Synchronize with Repository option opens the Synchronize tab () with the following buttons:
- 同步选中的文件,下拉箭头切换不同的远程目录。
Synchronizes the local copy with the currently selected repository when clicked. Selecting from the drop-down allows switching between different remote code bases.
- 只显示需要迁入的文件。
Shows only incoming changes (remote → local).
- 只显示需要提交的文件。
Shows only outgoing changes (local → remote).
- 同时显示需要更新或提交文件。
Shows both incoming and outgoing changes (remote ↔ local).
- 只显示有冲突的文件。
Shows conflicting changes.
- 更新全部文件。
Updates all local resources with incoming changes after prompt.
- 提交全部文件。
Brings up the commit dialog to commit all outgoing changes.
七、SVN常见问题及解决方法
7.1svn状态图标不显示
Windows最多只允许15个覆盖图标,它自己又用了几个,结果给用户用的就11个左右了,如果你安装了其他网盘,那可用的就更少了。
解决方法:
1、在运行里输入regedit进入注册表
2、依次打开HKEY_LOCAL_MACHINE->SOFTWARE->Microsoft->Windows->CurrentVersion->Explorer->ShellIconOverlayIdentifiers,会发现Tortoise前缀的一些文件,选中右键重命名,在前面加个空格就可以排到最前面了,如下图:
3、这时图标还是没有出来,需要重启下explorer.exe进程,在任务管理器的进程里找到explorer.exe,结束进程,然后 文件>新建任务(运行...),输入explorer.exe,图标就会显示出来了,如下图:
7.2、svn报错can only be performed on a version resource [at this time].
https://www.cnblogs.com/pangguoming/p/7298749.html
7.3、svn:Checksum mismatch while updating
https://blog.csdn.net/a342500329a/article/details/73106267
7.4、eclipse中svn提交显示错误svn: E200007: CHECKOUT can only be performed on a version resource
https://blog.csdn.net/u011476390/article/details/78623572
SVN专题(Visual SVN Server + TortoiseSVN + Visual SVN)的更多相关文章
- Visual SVN Server+TortoiseSVN进行源代码管理
安装VisualSVN Server 安装完之后,可配置SVN Server的IP地址,右键下图红色部分,选择属性,然后可配置ServeName和IP Address 之后可以创建用户.用户组和项目库 ...
- svn 使用TortoiseSVN server搭建本地SVN服务器
使用TortoiseSVN server搭建本地SVN服务器
- 如何创建 SVN 服务器,并搭建自己的 SVN 仓库 如何将代码工程添加到VisualSVN Server里面管理
如何创建 SVN 服务器,并搭建自己的 SVN 仓库,附链接: https://jingyan.baidu.com/article/6b97984dca0d9c1ca3b0bf40.html 如何将代 ...
- SVN提示https证书验证失败问题svn: E230001: Server SSL certificate verification failed:
最近在使用Idea 检出 svn项目时,出现了如下的画面 显示需要授权证书,需要证书路径 搜索网上的解决方式:无非以下几种 1.File->Settings->Version Contro ...
- 在Visualsvn Server上创建svn账号和密码
VisualSVN Server是一个集成的svn服务端工具,是一款svn服务端不可多得的好工具.可以先安装好VisualSVN Server后,运行VisualSVN Server Manger,然 ...
- svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录
svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录 Windows下,svn服务器IP本来是内网一台服务器上 ...
- 怎么清除SVN密码,以及重置eclipse中svn插件密码
如何清除SVN密码,以及重置eclipse中svn插件密码? 清除SVN客户端密码方法: 邮件选择TortoiseSVN中的settings选项---Saved Data---右边会发现有个Authe ...
- CentOS(Linux) - SVN使用笔记(二) - 创建SVN仓库及下载仓库到本地
1.安装: 参考文章 CentOS(Linux) - SVN使用笔记(一) - 安装SVN过程及开启和关闭svn服务指令 2.创建仓库 #创建项目目录 mkdir /usr/svn#进入目录cd / ...
- SVN与eclipse整合和利用、SVN与Apache综合
SVN与eclipse综合 下载SVN插入(http://subclipse.tigris.org) http://subclipse.tigris.org/servlets/ProjectDocum ...
随机推荐
- k近邻法( k-nearnest neighbor)
基本思想: 给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类 距离度量: 特征空间中两个实例点的距离是两个实例点相似 ...
- 05-python中函数的使用
函数:就是让程序模块化,把具有独立功能的代码块当成一个整体封装成一个函数 首先打印一个佛主看看: print(" _ooOoo_ ") print(" o8888888o ...
- Andriod4.2 Camera 架构与实现
1.Camera架构包括客户端和服务端,他们之间的通信采用Binder机制实现. Camera的实现主要包括本地代码和Java代码两个层次: Camera本地框架: frameworks/native ...
- MySQL开放外部链接
问题 指令空格 执行命令netstat -nat | grep :3306的时候,注意grep后一定要有空格!!! 该指令的功能为:让服务器接受远程连接.不过这样只能用于本地连接. 真正外部链接详见 ...
- Git使用总结(廖雪峰git)
安装 $ sudo apt-get install git 配置 # 配置用户名和邮箱 $ git config --global user.name "Your Name" $ ...
- 使用jdbc对数据库增删改查(Mysql为例)
一.statement对象介绍 Statement对象的executeUpdate方法,用于向数据库发送增.删.改的sql语句,executeUpdate执行完后,将会返回一个整数. Statemen ...
- kmp学习小结
KMP 简要说明 \(kmp\)是一个非常神奇的东西.它的\(fail(next)\)数组\(f[i]\)就表示\(1\)~\(i\)这个串的最长公共前缀后缀长度.根据这个\(fail\)数组,在匹配 ...
- FileZilla Server配置
1.在服务器上安装并配置服务端: 安装过程这里不再赘述,一直下一步,在跳出弹窗时勾选“Always connect to this server”,然后点击“Connect”即可(密码可自行设置) 之 ...
- python嵌入c++
1.去主页下载源代码项目 2.编译下载下来的项目 3.新建项目填入下面代码 // pythonIncludeTest.cpp : 定义控制台应用程序的入口点. // #include "st ...
- WebSocket的使用
WebSocket是长连接,如果客户端的程序没有数据实时同步的需求就没必要使用它.因为长连接会带来一定的服务器内存开销.如果Ajax就能轻松搞定的话就完全没必要兴师动众的搞WebSocket. htt ...