svn管理工具地址https://www.visualsvn.com/server/download/https://www.visualsvn.com/server/download/

visualSVN-server就是用来管理代码的

totroiseSVN(小乌龟)就是把你的项目上传到visualSVN-server这个管理工具上

两个搭配使用

教程

https://developer.aliyun.com/article/307587https://developer.aliyun.com/article/307587

1安卓可以按照到其他盘但是一定要英文命名文件夹而且,替换路径的时候记得不能放在一个文件夹里面可以复制它的文件夹命名创建

2下载完打开就是这样

3使用

然后我们要创建一个服务器,用来装项目,如图:
 

b02


 

b03


这个text就是服务器的后缀名

b04

b06


这个是设置权限:
Nobody has access意思是:不让任何人访问
All就是所有人都可以
最下面那个是自定义权限,我一般选择就是自定义咯
 

b07


 

b08

b09


到这里就是搞定了创建了一个url地址为https://ffff/svn/test
然后通过这个url就可以上传项目咯

4安装小乌龟

①首先,打开tortoiseSVN的官方下载网址:
https://tortoisesvn.net/downloads.html

②

你所看到的画面是这个样:
 

j1


然后点击根据自己系统的版本选择32位还是64位的,我的是64位的我就选择:


点击要选择的版本之后页面会跳转:等一下有点慢

j3


然后会显示一个绿色的进度条,等它走完了之后,就会开始进行下载,大概4秒左右就会走完,根据网速而定
下载完之后是这个样子:
 

j4


然后,点击安装
 

az1


 

az2


这里注意看箭头所指的地方!!!要点击一下那个框
 

az3


然后会出现这个样子的选项,选箭头指的那个,如图:
 

az4


如果不选这个,那么你的bin目录中将没有svn.exe这个东西,没有这个,你的idea就用不了svn喔
 

az5


 

az6


 

az7


好了,到这里,totroiseSVN(小乌龟)就已经安装完毕了,我们一起看一看安装结果如何:
这个就是下载完成后的目录:

j1

这个是目录整体结构
 

j2


小伙伴们是不是想要找svn.exe在哪里呢?首先,如图:
 

j2_1


下拉一下,看到箭头指的就是你千盼万盼的svn.exe啦,有了它,你的idea就可以使用svn了喔!1

j3

5前端vscod扩展安装svn

装好插件后,就可以把服务器上的代码拉下来了:

  1. 按 Ctrl + Shift + P 打开命令面板。
  2. 输入 SVN: Checkout 并回车。
  3. 输入仓库地址 (URL):
    • 就是你在 VisualSVN Server 里创建的那个地址,通常是 https://你的电脑名/svn/你的仓库名。
    • 例如:https://DESKTOP-ABC123/svn/MyProject
  4. 选择本地文件夹:
    • 选择一个空文件夹用来存放代码。
  5. 输入账号密码:
    • 输入你在 VisualSVN Server 里创建的用户名和密码。

第三步:日常使用

检出成功后,左侧边栏会出现一个 SVN 图标(类似一个分支形状)。

  • 提交代码:修改文件后,点击 SVN 图标,在“更改”列表里右键文件选择 Commit,或者在命令面板输入 SVN: Commit。
  • 更新代码:想看别人改了啥,在命令面板输入 SVN: Update。
  • 查看历史:右键文件选择 SVN: Log 可以看到提交记录。
  • 6如果到这里显示找不到svn那么需要我们点击设置手动填写path,关掉vscode重新打开就可以了

  • 设置成你下载的路径地址就可以了,需要\\哦

1正式使用小乌龟

①小乌龟创建要上传项目的文件夹

输入名字就有ok

②重新到本地项目文件夹里面选择刚刚创建的路径建立联系把代码推上去

配置好有一个弹窗选择

一个是拉取更新代码

一个是推送代码上去

操作全选之后ok就推上去了

③SVN配置忽略文件

.git .git/* *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db node_modules/

### 代表注释     配置global-ignores

### This file configures various client-side behaviors.
###
### The commented-out examples below are intended to demonstrate
### how to use this file.

### Section for authentication and authorization customizations.
[auth]
### Set password stores used by Subversion. They should be
### delimited by spaces or commas. The order of values determines
### the order in which password stores are used.
### Valid password stores:
###   gnome-keyring        (Unix-like systems)
###   kwallet              (Unix-like systems)
###   gpg-agent            (Unix-like systems)
###   keychain             (Mac OS X)
###   windows-cryptoapi    (Windows)
# password-stores = windows-cryptoapi
### To disable all password stores, use an empty list:
# password-stores =
###
### Set ssl-client-cert-file-prompt to 'yes' to cause the client
### to prompt for a path to a client cert file when the server
### requests a client cert but no client cert file is found in the
### expected place (see the 'ssl-client-cert-file' option in the
### 'servers' configuration file). Defaults to 'no'.
# ssl-client-cert-file-prompt = no
###
### The rest of the [auth] section in this file has been deprecated.
### Both 'store-passwords' and 'store-auth-creds' can now be
### specified in the 'servers' file in your config directory
### and are documented there. Anything specified in this section 
### is overridden by settings specified in the 'servers' file.
# store-passwords = no
# store-auth-creds = no

### Section for configuring external helper applications.
[helpers]
### Set editor-cmd to the command used to invoke your text editor.
###   This will override the environment variables that Subversion
###   examines by default to find this information ($EDITOR, 
###   et al).
# editor-cmd = editor (vi, emacs, notepad, etc.)
### Set diff-cmd to the absolute path of your 'diff' program.
###   This will override the compile-time default, which is to use
###   Subversion's internal diff implementation.
# diff-cmd = diff_program (diff, gdiff, etc.)
### Diff-extensions are arguments passed to an external diff
### program or to Subversion's internal diff implementation.
### Set diff-extensions to override the default arguments ('-u').
# diff-extensions = -u -p
### Set diff3-cmd to the absolute path of your 'diff3' program.
###   This will override the compile-time default, which is to use
###   Subversion's internal diff3 implementation.
# diff3-cmd = diff3_program (diff3, gdiff3, etc.)
### Set diff3-has-program-arg to 'yes' if your 'diff3' program
###   accepts the '--diff-program' option.
# diff3-has-program-arg = [yes | no]
### Set merge-tool-cmd to the command used to invoke your external
### merging tool of choice. Subversion will pass 5 arguments to
### the specified command: base theirs mine merged wcfile
# merge-tool-cmd = merge_command

### Section for configuring tunnel agents.
[tunnels]
### Configure svn protocol tunnel schemes here.  By default, only
### the 'ssh' scheme is defined.  You can define other schemes to
### be used with 'svn+scheme://hostname/path' URLs.  A scheme
### definition is simply a command, optionally prefixed by an
### environment variable name which can override the command if it
### is defined.  The command (or environment variable) may contain
### arguments, using standard shell quoting for arguments with
### spaces.  The command will be invoked as:
###   <command> <hostinfo> svnserve -t
### where <hostinfo> is the hostname part of the URL.  If the URL
### specified a username and/or a port, those are included in the
### <hostinfo> argument in the usual way: <user>@<hostname>:<port>.
### If the built-in ssh scheme were not predefined, it could be
### defined as:
# ssh = $SVN_SSH ssh -q --
### If you wanted to define a new 'rsh' scheme, to be used with
### 'svn+rsh:' URLs, you could do so as follows:
# rsh = rsh --
### Or, if you wanted to specify a full path and arguments:
# rsh = /path/to/rsh -l myusername --
### On Windows, if you are specifying a full path to a command,
### use a forward slash (/) or a paired backslash (\\) as the
### path separator.  A single backslash will be treated as an
### escape for the following character.

### Section for configuring miscellaneous Subversion options.
[miscellany]
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'.
# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache
global-ignores = .git .git/* node_modules dist build *.log *.rej *.swp .DS_Store [Tt]humbs.db

#   *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db
### Set log-encoding to the default encoding for log messages
# log-encoding = latin1
### Set use-commit-times to make checkout/update/switch/revert
### put last-committed timestamps on every file touched.
# use-commit-times = yes
### Set no-unlock to prevent 'svn commit' from automatically
### releasing locks on files.
# no-unlock = yes
### Set mime-types-file to a MIME type registry file, used to
### provide hints to Subversion's MIME type auto-detection
### algorithm.
# mime-types-file = /path/to/mime.types
### Set preserved-conflict-file-exts to a whitespace-delimited
### list of patterns matching file extensions which should be
### preserved in generated conflict file names.  By default,
### conflict files use custom extensions.
# preserved-conflict-file-exts = doc ppt xls od?
### Set enable-auto-props to 'yes' to enable automatic properties
### for 'svn add' and 'svn import', it defaults to 'no'.
### Automatic properties are defined in the section 'auto-props'.
# enable-auto-props = yes
### Set interactive-conflicts to 'no' to disable interactive
### conflict resolution prompting.  It defaults to 'yes'.
# interactive-conflicts = no
### Set memory-cache-size to define the size of the memory cache
### used by the client when accessing a FSFS repository via
### ra_local (the file:// scheme). The value represents the number
### of MB used by the cache.
# memory-cache-size = 16
### Set diff-ignore-content-type to 'yes' to cause 'svn diff' to
### attempt to show differences of all modified files regardless
### of their MIME content type.  By default, Subversion will only
### attempt to show differences for files believed to have human-
### readable (non-binary) content.  This option is especially
### useful when Subversion is configured (via the 'diff-cmd'
### option) to employ an external differencing tool which is able
### to show meaningful differences for binary file formats.  [New
### in 1.9]
# diff-ignore-content-type = no

### Section for configuring automatic properties.
[auto-props]
### The format of the entries is:
###   file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?').  All entries which match (case-insensitively) will be
### applied to the file.  Note that auto-props functionality
### must be enabled, which is typically done by setting the
### 'enable-auto-props' option.
# *.c = svn:eol-style=native
# *.cpp = svn:eol-style=native
# *.h = svn:keywords=Author Date Id Rev URL;svn:eol-style=native
# *.dsp = svn:eol-style=CRLF
# *.dsw = svn:eol-style=CRLF
# *.sh = svn:eol-style=native;svn:executable
# *.txt = svn:eol-style=native;svn:keywords=Author Date Id Rev URL;
# *.png = svn:mime-type=image/png
# *.jpg = svn:mime-type=image/jpeg
# Makefile = svn:eol-style=native

### Section for configuring working copies.
[working-copy]
### Set to a list of the names of specific clients that should use
### exclusive SQLite locking of working copies.  This increases the
### performance of the client but prevents concurrent access by
### other clients.  Third-party clients may also support this
### option.
### Possible values:
###   svn                (the command line client)
# exclusive-locking-clients =
### Set to true to enable exclusive SQLite locking of working
### copies by all clients using the 1.8 APIs.  Enabling this may
### cause some clients to fail to work properly. This does not have
### to be set for exclusive-locking-clients to work.
# exclusive-locking = false
### Set the SQLite busy timeout in milliseconds: the maximum time
### the client waits to get access to the SQLite database before
### returning an error.  The default is 10000, i.e. 10 seconds.
### Longer values may be useful when exclusive locking is enabled.
# busy-timeout = 10000

更多推荐