Subversions的基本原理

SVN--基本原理与使用(超详细) 1.为什么需要SVN版本控制软件我们想开发一个系统,需要张三,李四、王五三个人进行开发,每个人开发一个系统的某几个模块,我们称作协作开发。他们开发之间进行交流称作远程开发。最后合并成几个版本,如v1.0 、v2.0。这时候就需要SVN来进行版本管理,主要是三个功能:版本回退,协作开发,远程开发。2.解决之道SCM:(Software configuration management)软件配置管理,所谓的软件配置管理实际就是对软件源代码进行控制与管理CVS:元老级产品VSS:入门级产品。 阅读详情

1.subversion 的架构


2.subversion的组件

svn,svnversion,svnlook,svnadmin,mod_dav_svn,svnserve,svndumpfilter,svnsync。

3.基本概念

3.1. checkout 拷贝一份到本地

commit 将修改的提交带服务器版本

update 更新

3.2 Svn解决方案: 拷贝-合并 -修改

3.3 工作副本跟踪版本库的原理:

对与本地的拷贝,.svn/ 中记录两项关键信息:本地版本号和上次更新的时间戳。通过这两个信息,可以判断四种状态并操作:

<1, 未修改且是当前的。commit,update不做任何事情

<2, 本地已修改且是当前的。comiit将成功提交,update 不做任何事情

<3. Unchanged,and out of data, 本地无修改,服务器版本库修改。commit不做任何事情,update将得到最新的

<4. Locally changed,and out of date,本地,服务器版本库都修改。commit 将失败,必须先更新,update 讲合并公共和本地。

3.4 更新和提交是分开的,混合修订版本。  <这里有写不太明白。

svn status : 查看修改概况

svn log :查看历史修改记录

3.5 .svn 文件夹包含了svn的管理信息

3.6 遇到中断,代码被锁,用 cleanup


4. 基本工作循环

4.1 <1. 更新你的工作拷贝。

· svn update

<2. 做出修改 

· svn add 

· svn delete 

· svn copy 

· svn move 

<3. 检验修改 

· svn status 

· svn diff 

<4. 可能会取消一些修改 

· svn revert

<5. 解决冲突(合并别人的修改) 

· svn update 

· svn resolved 

<6. 提交你的修改 

· svn commit


4.2 冲突

冲突的基本格式

<<<<<<< .mine

   Salami

   Mortadella

   Prosciutto

   =======

   Sauerkraut

   Grilled Chicken

>>>>>>> .r2

上面是自己的,下面是别人的代码,根据情况处理,然后删掉conflict markers

5. 分支与合并概念

5.1 分支的概念:branch

brance多用于作为trunk的另外一条线,便于修改并不影响trunk

5.2  创建分支 svn copy,在server中 copy 是cheap copy,是建立一种 hard link,但在client 的repository 中是新文件目录,分支背后的关键概念:

<1,对于Subversions ,没有内在的分支概念,仅仅是copy一个目录

<2,犹豫拷贝机制,branches是作为正常的文件存储在repository.

5.3 版本库与复制


6.版本库管理

6.1 目录

conf : a directory containing configuration files

dab : a directory provided to mod_dav_svn for ints private housekeeping data

db : the data store for all of you versioned data

format: a file that contains a single integer that indicates the version number of the repository layout

hooks: a directory full of hook script templates(and hook scriptes themselves,once you've installed some)

locks: a directory for Subversions's resposity lock files,used for tracking accessors to the repository


6.2 版本库常用结构

版本库结构:trunk,branches,tags



提升RAG效果:为何 JSON 格式远胜 Markdown? 在构建强大的 RAG (检索增强生成) 系统时,文档解析是至关重要的第一步。它直接影响着后续的检索效率和生成质量。在众多文档格式中,JSON (JavaScript Object Notation) 格式正逐渐展现出其相对于传统 Markdown 格式的巨大优势。本文将深入探讨 JSON 在 RAG 系统文档解析中的卓越之处,并结合具体案例,让你理解为何 JSON 才是构建下一代智能应用的更优选择。RAG 系统的核心目标是让模型能够利用外部知识库,生成更精准、更贴合实际的答案。 阅读详情

相关推荐

快速了解GPU分布通信技术:PCIe、NVLink与NVSwitch

PCIe(Peripheral Component Interconnect Express)是一种高速串行计算机扩展总线标准,广泛用于连接计算机的各种硬件设备。PCIe4.0是目前较为先进的版本,提供了高达64GB/s的带宽。InfiniBand是一种用于高性能计算的高速互连技术,通过交换机在节点之间直接创建一个专用的受保护通道。InfiniBand适配器通过PCIe接口连接到CPU,另一端通过InfiniBand网络端口连接到InfiniBand子网。

全世界的博客 7543

项目管理工具-SVN(SubVersion)下载安装/基本详细具体使用步骤

svn入门教程从安装到使用步骤

m0_73414822的博客 1万+

OTN设备核心知识速记

本文章为工作笔记,若有错误,还需大家指正。不定期更新。

Hiddengold的博客 2648

61.SVN版本控制系统

所谓的 Tag 或是 Release 就是一个特别的版本,因为这个版本可能有特别的意义。其它的会被当做冲突。那么此时,我们就可以为小组2建立一个分支,分支其实就是 trunk 版(主干线)的一个copy版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的,当然,到最后我们可以通过(合并)功能,将分支合并到 trunk 上来,从而最后合并为一个项目。您将会看到 MyWork 目录下面多了一个名为 .svn 的目录(这个目录是隐藏的,如果您的档案管理员没有设定可以看到隐藏目录,您将无法看到它)。

khmff的博客 1535

linux下docker 部署onlyoffice社区版

Onlyoffice 是一款功能丰富的在线 Office 工具,类似 WPS 和 微软的 Office 套件。OnlyOffice Workspace 是由 OnlyOffice 推出的基于云计算的企业级在线协作办公平台,由文档服务(Document Server)、控制面板(Control Panel)、社区服务(Community Server)和邮件服务(Mail Server)四个组件构成,提供了文档、项目、成员、邮件等功能模块,支持文档多人协作、历史版本控制等功能,旨在帮助用户提高工作效率和工作质

axiaowua的博客 2382

Microsoft Dynamics 365软件二次开发:Dynamics365部署与版本控制策略

在Microsoft Dynamics 365中,自定义实体允许开发者扩展系统以满足特定业务需求。自定义实体可以包含字段、选项集、关系和其他属性,与标准实体类似,但完全由用户定义。1. 登录到Dynamics 365环境。2. 转到“解决方案”区域,选择“自定义”。3. 在“自定义”菜单中,选择“实体”。4. 点击“新建”,输入实体名称,例如“客户反馈”。5. 添加字段,如“反馈类型”、“反馈日期”、“描述”等。6. 设置主键和唯一标识符。7. 定义关系,如与“客户”实体的关联。

kkchenjj的博客 2208

SVN版本控制工具的原理及应用详解(一)

SVN(Subversion)是一个开放源代码的版本控制系统,它被广泛用于多人共同开发同一个项目时实现资源的共享和最终集中式的管理。主要功能目录版本控制:SVN实现了一个“虚拟”的版本控管文件系统,能够根据时间跟踪整个目录的变动。与CVS相比,SVN不仅可以跟踪单个文件的历史,还可以跟踪目录的变动。真实的版本历史:在SVN中,可以增加、删除、复制和重命名文件或目录。所有新加的文件都从一个新的、干净的版本开始。SVN支持所有可能影响目录内容的操作,而不像CVS那样有所限制。自动提交。

凛鼕将至的博客 1806

电子电器架构 --- OEM企标中规定ECU启动时间的目的

电子电器架构 --- OEM企标中规定ECU启动时间的目的

Soly_kun的博客 223

面试中SVN管理知识点全面剖析

本文和大家学习一下SVN管理问题,SVN工作模型,分支的概念和版本库布局等内容,希望通过本文的学习,你对SVN管理有更加深刻的认识。 本节讲解一下SVN管理问题,在学习SVN的过程中,你可能会遇到SVN管理问题,只有掌握了SVN管理你才能够对SVN运用自如,欢迎大家一起来学习SVN管理。下面我们来看一下具体介绍。一.SVN的工作模型:Subversion缺省使用复制-修改-合...

huozheleisi 369

【OS】AUTOSAR OS系统调用产生Trap的过程详解

AUTOSAR OS系统调用产生Trap的过程详解

qq_36056498的博客 2438

微信小程序转发功能异常报错 由于小程序违规分享功能暂时无法使用的解决办法

小程序右上角转发功能被封,不代表你违规了,而可能是你没认证、没备案!很多功能都是“先合规、后开发”,踩坑就晚了,别像我一样绕了三圈才发现问题。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2613

MAC 下安装 SVN

在mac下安装svn走了很多弯路,进过探索,现在对svn的安装做了总结,可以分为2种: 1.由于 xCode自带svn,所以可以安装xCode 1).打开App Store,搜索xCode,下载安装 打开 Launchpad>其他>终端,输入 svn --version 即可查看svn 版本 2.使用HomeBrew来安装SubVersions 1)...

dihua7808的博客 770

【RT-DETR有效改进】利用ASF-YOLO改进特征融合层(附代码 + 详细教程)

本文给大家带来的改进机制是ASF-YOLO(发布于2023.12月份的最新机制),其是特别设计用于细胞实例分割。这个模型通过结合空间和尺度特征,提高了在处理细胞图像时的准确性和速度。在实验中,ASF-YOLO在2018年数据科学竞赛数据集上取得了卓越的分割准确性和速度,达到了0.91的box mAP(平均精度),0.887的mask mAP,以及47.3FPS的推理速度,效果非常的好,这个结构本来是用于分割的,我将其移植到了目标检测的模型上,所以其可以适用于分割和目标检测。

Snu77的博客 2294

Comp AI CRM 技能评估体系:Blind Comparator 盲比较 Agent 的设计原理与实战指南

盲比较(Blind Comparison)是 [skill-creator](https://link.gitcode.com/i/42d9e6eb9e6c9f9d77ccba65ce05e468) 技能创建与迭代闭环中的一种进阶评估手段:它让一个独立的 Comparator Agent 在**不知道输出由哪个技能版本产生**的前提下,对两份输出进行 A/B 质量裁决,从而消除对特定技能或实现路径

gitblog_00447的博客 890

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Java愚公】idea打开svn项目看不到Subversion

此时顶部菜单也会出来SVN相关操作了。配置选择 Subversion。配置svn.exe地址。

qq_38362283的博客 848

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

tensorrt+opencv c++工程编译的问题

opencv编译 请点我 问题1 CMakeLists.txt的写法 cmake_minimum_required(VERSION 3.10) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}" ${CMAKE_MODULE_PATH}) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC O

Suan2014的博客 1321

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Jenkins入门系列之——02第二章 Jenkins安装与配置

第二章 Jenkins安装与配置 2 Jenkins安装 在最简单的情况下,Jenkins 只需要两个步骤: 1.下载最新的版本(一个 WAR 文件)。Jenkins官方网址: http://Jenkins-ci.org/ 2.运行 java -jar jenkins.war 注意:Jenkins 需要运行 Java 5以及以上的版本。 还有一种安装方式就是将下载的war包文件部署...

xiaomin1991222的专栏 162

PhpStorm中如何配置SVN,详细操作方法

1.简介: PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全,快速导航以及即时错误检查等功能大大提高了编码效率。它是一款商业的 PHP 集成开发工具,以其独特的开发便利性,短时间内赢得了大量PHPer的青睐。 SVN是Subversion的简称,是一个开放源代码的版本控制系统。说得简单...

weixin_34301307的博客 124

Windows下的subversion(SVN)下载安装及配置 -详细步骤

1.下载网址[http//subversion.apache.org/2.选择Windows系统下的VisualSVN二进制安装文件。3.选择VisualSVNServer下,相应的版本。下一步,知道install----finash。4.下载完成后,直接点击安装。

weixin_39269896的博客 1万+

CentOS Linux搭建SVN Server配置详解 (一)

本文配置是基于CentOS 5.x的,但一样适用于其他Linux发行版! SVN简介和工作原理 subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但较多安装在linux下。 svn服务器有两种运行方式:独立服务器和借助于apache。 svn

1 972

Subversion原理

版本号 Subversion(以下简称svn)是使用版本号来区分不同的文件版本的。对于其来说,每一次commit都会生成一个新的版本号并且是全局的,为了保障这个性质,svn要求每一次数据操作都是原子的。如图: 这些文件者存在$repoBase$/repos/db/revs/ 目前下。 存储结点 Svn使用结点表示每一个文件或目录,其数据存储结构类似于文件系统但有又不一样的地

Sefler的专栏 7208

SVN简介和工作原理

subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但较多安装在linux下。 svn服务器有两种运行方式:独立服务器和借助于apache。 svn://或http:// svn客户端tortoisesvn svn的基本工作原理: 在一台服务器上建立一个源代码

GUO_LOVER的博客 2310

Subversion实现原理介绍及钩子的使用

这里不过多介绍svn的安装、配置、使用。介绍一下Subversion的原理和工作机制。 一、实现原理:Subversion是一种集中的分享信息的系统,它的核心是版本库,它存储所有的数据,版本库按照文件树形式存储所有数据,包括所有的文件和目录。任意数量的客户端可以连接到版本库,读写这些文件,通过写数据,别人可以看到这些信息。通过读数据,别人可以看到版本的修...

weixin_34297704的博客 187

SVN工作原理

SVN 官网:https://subversion.apache.org/ Github SVN 源码:https://github.com/apache/subversionSV 菜鸟教程 N服务器是版本控制管理工具,其核心是集中式代码管理。 开发者在开始新一天工作之前必须现在本地update一下代码,然后开发、解决冲突、合并。所有的版本信息都放在SVN上面。 一、运行方式 svn服务器有两种...

番薯大佬的专栏 7204

SVN工作原理(帮助实现代码管理)

svn工作原理:在svn服务器上每个源代码文件都有一个版本(1、2、3),假设服务器上的代码文件原始版本是1,张三下载下来,修改后这个版本自动+1,变成了2,他把这个2上传到服务器。李四之前也下载了版本为1的这个文件,李四也修改,版本也是2,这时他要上传,服务器发现这个文件版本2在服务器上已经存在,发出警告:版本冲突了。如何解决?合并。 1、配置服务器 安装SubVersion ,svn-

独家记忆-涂仕明的专栏 5516
上一篇: block学习
下一篇: 本地Svn的搭建
落随风
博客等级 码龄18年 27粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值