mac svn 创建

本文介绍如何在Mac上搭建SVN服务器并使用Cornerstone进行版本控制操作,包括服务器创建、配置文件修改、项目上传及组员分享流程,并提供了解决Cornerstone不显示Log的BUG方法。
  1. mac svn 创建
  2. 创建服务器
  3. 修改配置文件
  4. 开启svn服务 上传项目(初始化项目)
  5. 分享给组员
  6. cornerstone 不显示Log BUG 解决

创建服务器

$ mkdir svnserver
$ cd svnserver
$ svnadmin create bjtRepository

修改配置文件

$ cd bjtRepository/conf
  1. 服务器文件
$ vim svnserve.conf

这里写图片描述

2. 用户文件(在这里添加团员)

$ vim passwd

这里写图片描述

  1. 权限文件
$ vim authz

这里写图片描述

开启svn服务

$ cd ~ $ svnserve -d -r /Users/yunlong/svnserver/bjtRepository

上传项目(初始化项目) 进入项目文件夹下

$ cd /Users/yunlong/Desktop/testtest/svn_测试
$ svn import . svn://localhost/bjtRepository/svn_ 测试 --username=yunlong --password=yunlong -m “初始化导入"

导入之后就可以使用界面工具连接服务器了.
这里写图片描述
这里写图片描述

分享给组员
组员创建一个工作目录

$ mkdir /Users/stone/Desktop/zuyuan
$ cd /Users/stone/Desktop/zuyuan

svn checkout svn://192.168.199.112/testRepository/svn_测试 –username=zhangpeng –password=123
192.168.199.112 仓库ip地址 /testRepository/svn_测试 仓库下的项目名 username=zhangpeng –password=123 组员账号 密码

cornerstone 不显示Log BUG 解决

$ defaults delete com.zennaware.Cornerstone HistoryCacheUsage 
$ cd ~/Library/Caches/Cornerstone 
$ open 

这里写图片描述
删除这两个文件
cmd+Q 退出 cornerstone
打开 cornerstone 点击
会有提示框 选择 “Never”

<think>我们正在讨论如何使用Java创建SVN仓库。根据之前关于VisualSVN Server的讨论,我们知道有两种主要方法:调用PowerShell命令和使用HTTP API(通过SVNKit等库)。现在,我们将更一般地讨论Java创建SVN仓库的方法,不限于VisualSVN Server。 方法1:使用SVNKit库(推荐,跨平台) SVNKit是一个纯Java的SVN库,可以用于创建和管理SVN仓库。 方法2:执行系统命令(如svnadmin create,但需要本地安装SVN) 下面分别给出示例: 方法1:使用SVNKit创建仓库 步骤: 1. 添加SVNKit依赖(Maven): ```xml <dependency> <groupId>org.tmatesoft.svnkit</groupId> <artifactId>svnkit</artifactId> <version>1.10.3</version> </dependency> ``` 2. Java代码示例: ```java import org.tmatesoft.svn.core.SVNDepth; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.internal.io.fs.FSRepositoryFactory; import org.tmatesoft.svn.core.internal.wc2.SvnWcGeneration; import org.tmatesoft.svn.core.wc2.SvnOperationFactory; import org.tmatesoft.svn.core.wc2.SvnSetProperty; import org.tmatesoft.svn.core.wc2.SvnTarget; import java.io.File; public class SvnKitCreateRepo { public static void main(String[] args) { // 初始化 FSRepositoryFactory.setup(); // 仓库路径(本地文件系统路径) File repoDir = new File("D:\\svn_repos\\new_repo"); try { // 创建仓库 org.tmatesoft.svn.core.io.SVNRepositoryFactory.createLocalRepository(repoDir, true, false); System.out.println("仓库创建成功: " + repoDir.getAbsolutePath()); } catch (SVNException e) { e.printStackTrace(); } } } ``` 方法2:通过执行svnadmin命令(需要本地安装Subversion命令行工具) 示例代码: ```java import java.io.BufferedReader; import java.io.InputStreamReader; public class SvnAdminCreateRepo { public static void main(String[] args) { String repoPath = "D:\\svn_repos\\new_repo"; try { // 构建命令 ProcessBuilder pb = new ProcessBuilder("svnadmin", "create", repoPath); pb.redirectErrorStream(true); Process process = pb.start(); // 读取输出 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } int exitCode = process.waitFor(); if (exitCode == 0) { System.out.println("仓库创建成功"); } else { System.out.println("创建失败,错误码: " + exitCode); } } catch (Exception e) { e.printStackTrace(); } } } ``` 注意事项: 1. 使用SVNKit不需要本地安装SVN,但需要添加依赖。 2. 执行系统命令的方式需要确保服务器上已安装Subversion,并且svnadmin命令在系统路径中。 3. 创建远程仓库(如VisualSVN Server)通常需要通过其提供的API(如HTTP管理接口或PowerShell),因为直接操作远程文件系统不安全也不现实。 对于远程仓库的创建,通常使用HTTP/HTTPS协议通过服务器提供的API进行,如之前提到的VisualSVN的HTTP API。如果使用其他SVN服务器(如Apache SVN),则可能需要通过WebDAV协议操作。 因此,根据实际环境选择合适的方法。 §§相关问题§§ 1. 使用SVNKit创建仓库时如何设置仓库的UUID? 2. 如何通过Java代码在新建的SVN仓库中创建初始目录结构(如trunk, branches, tags)? 3. 执行svnadmin命令创建仓库时,如何避免路径中包含空格的错误? 4. SVNKit与本地执行svnadmin命令两种方式在性能上有什么差异? 5. 如何通过Java代码实现远程SVN服务器(如Apache SVN)的仓库创建?</think>### Java 创建 SVN 仓库的实现方法 在 Java 中创建 SVN 仓库主要通过以下两种方式实现(推荐使用 SVNKit 库): #### 方法一:使用 SVNKit 库(纯 Java 实现) ```java import org.tmatesoft.svn.core.*; import org.tmatesoft.svn.core.io.SVNRepositoryFactory; import org.tmatesoft.svn.core.wc.SVNWCUtil; public class SvnRepoCreator { public static void main(String[] args) { try { // 1. 设置仓库路径(本地文件系统) File repoDir = new File("D:/svn_repos/new_repo"); // 2. 创建本地仓库 SVNRepositoryFactory.createLocalRepository(repoDir, true, false); // 3. 配置仓库属性(可选) ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager("admin", "password"); // 4. 验证创建结果 System.out.println("仓库创建成功: " + repoDir.getAbsolutePath()); System.out.println("UUID: " + SVNRepositoryFactory .create(SVNURL.fromFile(repoDir), null) .getRepositoryUUID(true)); } catch (SVNException e) { e.printStackTrace(); } } } ``` #### 方法二:执行系统命令(需安装 SVN) ```java import java.io.BufferedReader; import java.io.InputStreamReader; public class SvnAdminExecutor { public static void createRepo(String repoPath) { try { // 构建命令 String[] command = {"svnadmin", "create", repoPath}; // 执行命令 Process process = Runtime.getRuntime().exec(command); // 处理输出 try (BufferedReader reader = new BufferedReader( new InputStreamReader(process.getErrorStream()))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } // 检查结果 if (process.waitFor() == 0) { System.out.println("仓库创建成功"); } else { throw new RuntimeException("创建失败"); } } catch (Exception e) { e.printStackTrace(); } } } ``` ### 关键实现细节 1. **依赖配置**(Maven): ```xml <dependency> <groupId>org.tmatesoft.svnkit</groupId> <artifactId>svnkit</artifactId> <version>1.10.7</version> </dependency> ``` 2. **路径处理注意事项**: - Windows 使用 `D:/path` 格式(避免反斜杠转义问题) - Linux/Mac 使用标准路径格式 - 路径中禁止包含空格和特殊字符 3. **错误处理**: - 捕获 `SVNException` 处理仓库冲突 - 检查目录写权限 - 验证父目录存在性 4. **高级配置**: ```java // 创建带自定义配置的仓库 FSRepositoryFactory.createRepository(repoDir, Collections.singletonMap( FSRepository.PRE_1_4_COMPATIBLE_KEY, "true" ) ); ``` > **最佳实践**: > 1. 优先使用 SVNKit(避免依赖系统环境) > 2. 创建后立即设置仓库权限 > 3. 对于远程仓库,通过 HTTPS 使用 SVN 管理 API > 4. 生产环境添加异常重试机制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值