SVN安装,上传,下载文件步骤

本文详细介绍了SVN版本库的基本概念,如版本库、文件共享问题、文件拷贝、URL和修订版本。讲解了TortoiseSVN客户端的安装和汉化过程,并列举了其主要功能,包括checkout、export、import、update和解决冲突的方法。此外,还提供了英文操作教程,涵盖文件上传、更新和下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本地电脑需要安装SVN客户端,从SVN版本库地址中下载版本库目录到本地电脑中。

TortoiseSVN官方文档:https://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/index.html

一、 SVN版本库    4
1. 基本概念    4
1.1 版本库    4
1.2 文件共享问题    4
1.3 文件拷贝    5
1.4 版本库的URL    5
1.5 修订版本    5
二、 TortoiseSVN客户端    6
2. 安装与汉化    6
2.1 安装步骤    6
2.2 TortoiseSVN客户端汉化    8
三、 SVN指导教程    11
3. 功能介绍    11
3.1 svn check out    11
3.2 svn export    11
3.3 svn import    12
3.4 svn update    13
3.5 提交SVN服务器    13
3.6 解决冲突(合并别人的修改)    14
3.7 获取其他版本    15
3.8 更改路径    16
3.9 解决锁定    17

一、SVN版本库
1.基本概念
1.1 版本库
SVN是一种集中的分享信息的系统,它的核心是版本库,它储存所有的数据,版本库按照文件树形式储存数据—包括文件和目录。任意数量的客户端可以连接到版本库,读写这些文件。我们通过写数据,别人可以看到这些信息,而通过读数据,可以看到别人的修改。

Subversion会记录每一次的更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。
当一个客户端从版本库读取数据时,通常只会看到最新的版本,但是客户端也可以修改当前拉取的版本,去查看以前的任何一个版本。举个例子,一个客户端可以发出这样的历史问题“上个星期三的目录是怎样的?”或是“谁最后一个更改了这个文件,更改了什么?”。这些是每一种版本控制系统的核心问题:SVN系统的设计是用来记录和跟踪每一次改动的。

1.2 文件共享问题
所有的版本控制系统都需要解决这样一个基础问题:怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰?版本库里意外覆盖别人的更改非常的容易。
例如我们有两个共同工作者A和B,他们想同时编辑版本库里的同一个文件。如果首先A保存它的修改,过了一会,B可能凑巧用自己的版本覆盖了这些文件,A的更改不会永远消失(因为SVN系统记录了每次修改)。因为B覆盖了这些文件成为最新的版本,而A的版本低于B的版本,所以A所有的修改不会出现在B的文件中,这样一来A的工作还是丢失了—至少是从最新的版本中丢失了—而且

是意外的,这就是我们要明确避免的情况!

1.3 文件拷贝
通常情况下,拷贝的文件夹重有一个以.svn为名的隐藏文件夹(),也被叫做工作拷贝管理目录,这个目录里的文件能够帮助Subversion识别哪一个文件做过修改,哪一个文件相对于别人的工作已经过期了。

1.4 版本库的URL
Subversion可以通过多种方式访问—本地磁盘访问,或各种各样不同的网络协议,但一个版本库地址永远都是一个URL。


1.5 修订版本
一个SVN提交操作可以作为一个原子事务操作发布任意数量文件和目录的修改。在我们的工作拷贝里,我们可以改变文件内容、删除、重命名和拷贝文件和目录,然后作为一个整体提交。
在版本库中,每一次提交被当作一次原子事务操作(要么所有的改变发生,要么都不发生),Subversion努力保持原子性以应对程序错误、系统错误、网络问题和其他用户行为。
每当版本库接受了一个提交,文件系统进入了一个新的状态,叫做一次修订(revision),每一个修订版本被赋予一个独一无二的自然数,一个比一个大,初始修订号是0,只创建了一个空目录,没有任何内容。

二、TortoiseSVN客户端
2.安装与汉化
2.1安装步骤
TortoiseSVN的安装步骤如下:

 

2.2TortoiseSVN客户端汉化
安装TortoiseSVN完成后,打开汉化文件
“LanguagePack_1.12.2.28653-x64-zh_CN”,对已客户端进行汉化。

 汉化效果如下图所示:

三、SVN指导教程
3.功能介绍
3.1 svn check out
svn check out用来导出Subversion版本库的文件,同时会与SVN版本库关
联。.svn文件是隐藏文件,用于SVN内部控制版本。关联后文件会有下标显示。

通过修改版本库URL可以指定检出的位置(需要拥有该目录的权限),默认
为最新版本,也可以通过查看日志选择需要的版本:
(新版SVN采用Https协议,URL示例如下图)
(新版SVN采用Https协议,URL示例如下图)
(新版SVN采用Https协议,URL示例如下图)

3.2 svn export
svn export用来导出Subversion版本库的文件,不会关联SVN版本库。不
会创建.svn文件,文件无下标显示。

通过修改版本库URL可以指定导出的位置(需要拥有该目录的权限),默认
为最新版本,也可以通过查看日志选择需要的版本:

3.3 svn import
svn import会把新项目导入到Subversion的版本库中。

 

3.4 svn update
svn update会把版本库的修改更新到工作拷贝,如果没有给定修订版本,他会把我们的工作拷贝更新到最新修订版本,否则,它会把工作拷贝更新到我们指定的修订版本。

 

3.5 提交SVN服务器
使用TortoiseSVN客户端提交到SVN服务器时(),会展示如下界面:

 

3.6 解决冲突(合并别人的修改)
举个例子,A修改了ELP 2.0.txt,B刚刚改变了他的本地拷贝中的这个文件并且提交到服务器,A在提交之前更新它的工作拷贝得到了冲突。在这种情况下,SVN不会允许A提交ELP 2.0.txt。
我们要确定这些内容在下次提交之前得到删除,下图是版本库中的信息。

 

3.7 获取其他版本
在工作中如果要获取之前的版本,选择TortoiseSVN的显示日志功能,可以查看历史版本信息。

根据需求,通过日期筛选、关键字查询、查看版本与日志信息等操作查询,并导出需要的版本。

 

3.8 更改路径
需要改变SVN服务器的地址时,在.svn文件夹()的同级目录下,通过重新定位功能可以修改默认地址。

 

解决锁定
当本地的SVN仓库被锁定时,通过两个步骤可以解决当前问题,如下图所示:

四,英文操作教程  

1,SVN上传文件
把需要上传的文件存放到本地电脑中的SVN目录下,选中文件,点鼠标右键选择TortoiseSVN ,选择add或加入。
选中文件会显示一个+的图标,在鼠标右键菜单中点击“SVN   Commit正常提交”


弹出一个窗口,输入提交文件的理由或日志。点击右下角的确定,

这时,文件图标会显示“√”,代表文件上传完成。

2,Update 另外的人提交了文档导致版本不一样,先更新统一SVN  update

更新完成会打印:

3,SVN下载文件

进入SVN,右键checkout

新建需要下载到哪里的目录,然后粘贴到第二个蓝色框

 下载完成

要在Java中使用SVN上传文件,你可以使用SVNKit库。以下是一个简单的示例代码: 首先,确保你已经在项目中添加了SVNKit的依赖。例如,如果你使用Maven构建项目,可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.tmatesoft.svnkit</groupId> <artifactId>svnkit</artifactId> <version>1.10.3</version> </dependency> ``` 然后,你可以使用以下代码来执行文件上传操作: ```java import org.tmatesoft.svn.core.*; import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions; import org.tmatesoft.svn.core.internal.wc.SVNFileUtil; import org.tmatesoft.svn.core.internal.wc2.compat.SvnCodec; import org.tmatesoft.svn.core.io.SVNRepository; import org.tmatesoft.svn.core.io.SVNRepositoryFactory; import org.tmatesoft.svn.core.wc.*; import java.io.File; public class SVNUploader { private static final String SVN_URL = "https://svn.example.com/svn/repository"; private static final String SVN_USERNAME = "your_username"; private static final String SVN_PASSWORD = "your_password"; public static void main(String[] args) { File fileToUpload = new File("path/to/your/file"); String destinationPath = "/path/in/repository"; SVNURL svnUrl = SVNURL.parseURIEncoded(SVN_URL); SVNRepository repository = SVNRepositoryFactory.create(svnUrl); ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(SVN_USERNAME, SVN_PASSWORD); repository.setAuthenticationManager(authManager); DefaultSVNOptions options = SVNWCUtil.createDefaultOptions(true); SVNClientManager clientManager = SVNClientManager.newInstance(options, authManager); SVNCommitClient commitClient = clientManager.getCommitClient(); try { SVNCommitInfo commitInfo = commitClient.doImport(fileToUpload, repository.getLocation().appendPath(destinationPath, false), "uploading file", null, true, false, SVNDepth.INFINITY); System.out.println("File uploaded successfully. Revision: " + commitInfo.getNewRevision()); } catch (SVNException e) { System.err.println("Error uploading file: " + e.getMessage()); } } } ``` 请注意,你需要将示例代码中的SVN_URL、SVN_USERNAME和SVN_PASSWORD替换为你自己的SVN服务器的URL、用户名和密码。 这段代码使用SVNKit库来连接到SVN服务器,并使用提供的用户名和密码进行身份验证。然后,它使用SVNCommitClient的doImport方法将文件上传到指定的路径。上传完成后,将打印出新的版本号。 请记住,在运行代码之前,确保你的项目已经添加了SVNKit库的正确依赖,并且替换了示例代码中的SVN_URL、SVN_USERNAME和SVN_PASSWORD。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒听雪落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值