svn服务器的搭建和使用2

本文详细介绍了如何使用VisualSVNServer建立版本库,通过TortoiseSVN导入项目,并进行权限管理。包括创建版本库、导入项目、建立用户组和用户,以及配置权限的过程。


上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用.

首先打开VisualSVN Server Manager,如图:

可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等.要建立版本库,需要右键单击左边窗口的Repositores,如图:

在弹出的右键菜单中选择Create New Repository或者新建->Repository,进入下一步:

输入版本库名称,勾上Create default structure复选框(推荐这么做).点击OK,版本库就创建好了,版本库中会默认建立trunk,branches,tags三个文件夹,如图:

这时候我们将项目导入到版本库中,找到你的项目文件夹,在项目文件夹上点击鼠标右键,找到SVN菜单,选择导入,如图:

在弹出的对话框中填上版本库URL,这个URL可以从VisualSVN Server Manager中获取,在你的版本库上单击右键,选择Copy URL to Clipboard,这样就把版本库URL复制到你的剪贴版了.如图:

将复制的版本库URL粘贴上,在URL后面加上trunk子路径.然后在导入信息里面填上导入信息"导入项目到版本库".如图:

点击确定,所选中的项目就会被导入到版本库中.如图:

项目导入到版本库以后,不能随便让谁都能够读写版本库,所以需要建立用户组和用户.

在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create User或者新建->User,如图:

在弹出的对话框中填写User name和Password,然后点击OK,如图:

用相同的方式分别创建用户Develpoer1,Develpoer2,Develpoer3,Test1,Test2,Manger六个用户,分别代表3个开发人员,两个测试人员和一个项目经理,如图:

然后我们建立用户组,在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create Group或者新建->Group,如图:

在弹出窗口中填写Group name为Developers,然后点Add按钮,在弹出的窗口中选择三个Developer,加入到这个组,然后点Ok,如图:

用相同的方式创建组Managers,Testers,如图:

接下来我们给用户组设置权限,在MyRepository上单击右键,选择属性,如图:

在弹出的对话框中,选择Security选项卡,点击Add按钮,选中Developers,Managers,Testers三个组,然后添加进来,给Developers,Managers权限设置为Read/Write,Tester权限设置为Read Only,如图:

到此,服务端就完成了.

接下来,我们用客户端去检出代码,在桌面空白处单击右键,选择SVN检出,在弹出的对话框中填写版本库URL(具体获取方式,上面讲上传项目到版本库的时候讲过),选择检出目录,点击确定.如图:

开始检出项目,如图:

检出完成之后,我们打开工作副本文件夹,会看到所有文件和文件夹都有一个绿色的√.如图:

至此,创建版本库和使用TortoiseSVN导入项目,检出项目已经介绍完毕.

下一篇介绍TortoiseSVN的使用,以及冲突解决办法.

转自:http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407979.html

### DedeCMS 内容页调用文章正文的方法DedeCMS 中,内容页调用文章正文是一个非常常见的需求。通常情况下,DedeCMS 的模板引擎会自动完成这一操作,但如果需要自定义或者扩展功能,则可以通过特定的标签或代码实现。 #### 默认方式 对于标准的内容页模板文件 `article_article.htm` 或其他类似的模板文件,默认已经包含了 `{dede:field.content/}` 这一标签用于显示文章正文[^5]。此标签无需额外配置即可正常工作。 ```html <div class="content"> {dede:field.content/} </div> ``` 如果希望对正文内容进行处理(如截取部分内容),可以使用内置函数 `cn_substr()` 和 `html2text()` 来实现: ```html <p>{dede:field.content function='cn_substr(html2text(@me), 200)'/}</p> ``` 以上代码表示将正文转换为纯文本并截取前 200 字符[^3]。 --- #### 自定义 SQL 查询方式 当默认标签无法满足复杂需求时,也可以通过自定义 SQL 查询的方式获取正文内容。例如,在某些特殊场景下可能需要手动查询数据库字段 `body` 并将其嵌入页面中。 以下是一段示例代码展示如何通过 PHP 实现这一点: ```php <?php $aid = intval($refObj->Fields['id']); // 获取当前文档 ID $row = $dsql->GetOne("SELECT body FROM `dede_addonarticle` WHERE aid='$aid'"); if(is_array($row)){ echo htmlspecialchars_decode($row['body']); } else { echo "未找到相关内容"; } ?> ``` 这段代码的作用是从附加表 `dede_addonarticle` 中提取指定文章的正文部分,并输出到页面上[^1]。 --- #### 动态加载方式 为了提高性能或优化用户体验,还可以考虑动态加载文章正文内容。这通常涉及 AJAX 技术以及服务器端接口的支持。以下是一个简单的前端和后端配合方案的例子: ##### 前端 HTML + JavaScript ```html <button id="loadContent">加载全文</button> <div id="textContent"></div> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function(){ $('#loadContent').click(function(){ $.ajax({ url: '/get_content.php', type: 'POST', data: {'aid': <?php echo $refObj->Fields['id']; ?>}, success: function(response){ $('#textContent').html(response); } }); }); }); </script> ``` ##### 后端 PHP 文件 (`get_content.php`) ```php <?php require_once(dirname(__FILE__)."/../include/common.inc.php"); $aid = isset($_POST['aid']) ? intval($_POST['aid']) : 0; if ($aid > 0){ global $dsql; $row = $dsql->GetOne("SELECT body FROM `dede_addonarticle` WHERE aid='$aid'"); if(is_array($row)){ echo htmlspecialchars_decode($row['body']); } else { echo "未找到相关内容"; } } else { echo "参数错误"; } ?> ``` 这种方法适合于大篇幅内容分步加载的情况,能够有效减少初始页面加载时间[^4]。 --- ### 总结 无论是利用默认标签还是编写自定义逻辑,都可以灵活地实现在 DedeCMS 内容页上调用文章正文的功能。具体选择取决于实际应用场景和技术要求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值