Emacs VC-mode && psvn.el

孙鑫视频VC++深入详解学习笔记 <br />VC++深入详解学习笔记<br />Lesson1: Windows程序运行原理及程序编写流程<br />Lesson2: 掌握C++基本语法<br />Lesson3: MFC框架程序剖析<br />Lesson4: 简单绘图<br />Lesson5: 文本编程<br />Lesson6: 菜单编程<br />Lesson7: 对话框编程<br />Lesson9: 定制应用程序的外观<br />Lesson10: 绘图控制<br />Lesson11 图形的保存和重绘<br />Lesso 阅读详情

使用 Emacs 的 VC minor mode

Emacs 有一个 VC minor mode ,让各种版本控制的操作可以在 Emacs 里面非常 方便地进行。最新的 cvs 版的 Emacs 已经支持 Subversion 了。

比较详细的文档请看基本的Emacs VC操作。下面我们来看一个简单的例子,来简 要的说明最常用的几个功能。首先创建一个Subversion仓库:

svnadmin create /tmp/svnrepo

创建一个空工程,导入仓库:

mkdir test
svn import test file:///tmp/svnrepo -m "initial import test"

然后check out出自己的一个工作目录:

svn co file:///tmp/svnrepo working

现在,用 Emacs 在 working 目录下面新建一个文件 test1.c ,输入如下内容:

保存,然后按 C-x v v ,VC 会把 test1.c 注册到 svn 仓库里面去,注意看 mode line 上面的 VC Mode指示器显示了“SVN:0”。现在在执行一次 C-x v v ,Emacs 会弹出一个 buffer 让你输入提交日志,现在输入

first commit test1

并按 C-c C-c ,于是 Emacs 用你输入的日志把 test1.c 提交到 svn 仓库中。 注意现在 mode line 上显示了“SVN-0”,说明这个文件自从你上次提交之后都没 有变过。现在修改源文件,把

改为

保存,看到 mode line 上面的 VC Mode指示器的改变了吗?变成了“SVN:0”,说 明文件自从上一次 commit 之后有所改变。那么现在让我们来看看究竟改变了什 么,按 C-x v = ,Emacs 会弹出一个 buffer 显示你自从上次 commit 之后所做的改变。你也可以用 M-x ediff-revision 来使用Ediff来获得 更灵活方便的交互式的比较和更cool的显示。假如你觉得这样的改变不好,那么 丢弃自从上一次提交以来的所有更改吧: C-x v u ,Emacs 会显示出 C-x v = 显示的那个画面,告诉你你所做的更改,并问你是否确认 要丢弃所做的更改。好吧,我们先不丢弃更改,选择否。然后,在用 C-x v d 来 打开 working 目录,看看当前的状态,哦,显示:

-rw-r--r-- (modified) 2006-05-01 20:09 test1.c

就是说 test1.c 更改了,那我们就把他提交到仓库吧,让光标到 test1.c 上或者给 他做上 mark ,并按 v v ,OK!Emacs 又弹出了那个输入日志的 buffer ,现在输入

change puts to printf

并按 C-c C-c 提交。现在变成了:

-rw-r--r--            2006-05-01 20:09 test1.c

按 q 退出 Dired ,再回到了 test1.c 的 buffer。再注意到 mode line 的改变。 现在,假如我忘记了刚才做了什么更改,想看看日志,没问题: C-x v l ,现在 Emacs 弹出了日志 buffer:

Working file: test1.c
------------------------------------------------------------------------
r2 | kid | 2006-05-01 20:19:37 +0800 (Mon, 01 May 2006) | 2 lines

change puts to printf

------------------------------------------------------------------------
r1 | kid | 2006-05-01 20:08:10 +0800 (Mon, 01 May 2006) | 2 lines

first commit test1

------------------------------------------------------------------------

哦,现在知道了,是把 puts 变成了 printf 。仅仅是这样的改变吗?这只是日 志提供的信息,万一我写日志的时候漏掉了某些内容呢?我还是来看看这两个版 本的区别吧:C-u C-x v = RET RET RET 这么多RET 是因为都是 Emacs 所提供的默认选项,OK!现在看到了版本号 1 和版本号 2 之间的区别了 吧?确实是只是修改了 puts 到 printf 。要看 cool 的 Ediff 的效果,请使用 M-x ediff-revision RET 1 RET 2 RET 。或者,你不习惯看 diff,想看看版本 1 的完整的样子,也没有问题: C-x v ~ 1 RET ,Emacs 会打开一个 buffer, 并在里面显示版本 1 的内容。现在,让我们来制造一点混乱,再编辑文件,把

改为

保存文件。然后在其他地方在 check out 一个工作副本:

svn co file:///tmp/svnrepo working1

然后进入 working1 目录,修改文件,把

改为

保存,并提交到仓库:

svn ci -m 'change "hello" to "hello world/n"'

好了,现在再回到 Emacs 的 test1.c ,现在用 C-x v v 提交。Emacs 弹出 buffer 让你输入日志,记住你以前输入的日志都被 Emacs 暂时记住了,按一下 M-p ,上一次输入的日志会出现:

change puts to printf

现在,改成

change "hello" to "hello world!"

并按 C-c C-c 提交,不出所料,这次就没有那么顺利了,提交不成功,Emacs 显示 了错误的原因:

svn: Commit failed (details follow):
svn: Out of date: 'test1.c' in transaction '3-1'
Sending        test1.c

原来是“别人”提交了 test1.c 的新版本呀。那我们更新一下吧! M-x vc-update 呵呵!看到 Emacs 说什么?*vc* buffer 里面显示:

C    test1.c
Updated to revision 3.

但是 minibuffer 里面有一句:

vc-svn-merge-news: Couldn't analyze svn update result

呵呵!我目前用的 Emacs 22.0.50.1 出现这样的错误,不知道是bug还是没有实 现的功能,因为 Subversion 是新出现的东西,所以 VC 的 Subversion 接口也 是还在开发中的。不过,现在查看 working 目录,发现已经多了几个文件: test1.c.mine 之类的,这正是 Subversion 出现冲突的迹象,重新打开一下 test1.c ,发现里面有 Subversion 插入的冲突标记:

发现原来忘记假换行符了,于是,可以手工修改,或者用 M-x vc-resolve-conflicts 来调用 Ediff 来华丽地修改。之后怎么办呢?我还不知 道 VC 目前支持不支持这个东西,也不知道 vc-resolve-conflicts 会不会自动 去除conflict 标记,现在先让我们手工运行一下 Subversion 的命令吧: M-! svn resolved test1.c 去除 conflict 标记。

好啦!到目前为止,我们的例子结束!因为我已经把我目前知道的大部分功能都 展示了一下,希望 VC 的 Subversion 接口将来做得更好!:)

使用 psvn.el

psvn — Subversion interface for Emacs

psvn.el 是 Emacs 的一个 Subversion 接口。他提供类似于 pcl-cvs 的功能:

  • 显示Subversion工作拷贝的状态
  • 显示不同的版本之间的差别
  • 显示版本日志
  • 编辑文件属性
  • 提交工作拷贝的更改

它包含了用于工作在一个已经 check out 出来的 Subversion 的工作拷贝上的各 种功能。如果你缺少了某种功能或者是发现了一个 Bug,请发送 Email 到 stefan@xsteve.at 。一个详细的 ChangeLog 可以在 svn ViewCvs server 获得。 最新版的 psvn 可以从 http://www.xsteve.at/prg/emacs/psvn.el 获得,或者通 过 Subversion 仓库得到:

svn co http://svn.collab.net/repos/svn/trunk/contrib/client-side/psvn psvn

psvn 使用简介

下载 psvn.el ,并添加其路径你的 Emacs 的 LoadPath 里面。然后在自己的 .emacs 里面加入:

用 M-x svn-status 来打开一个 svn-status 的 buffer,这个 buffer 处于 svn-status mode 中,可用的命令如下:

g     - svn-status-update:               run 'svn status -v'
M-s   - svn-status-update:               run 'svn status -v'
C-u g - svn-status-update:               run 'svn status -vu'
=     - svn-status-show-svn-diff         run 'svn diff'
l     - svn-status-show-svn-log          run 'svn log'
i     - svn-status-info                  run 'svn info'
r     - svn-status-revert                run 'svn revert'
X v   - svn-status-resolved              run 'svn resolved'
U     - svn-status-update-cmd            run 'svn update'
M-u   - svn-status-update-cmd            run 'svn update'
c     - svn-status-commit                run 'svn commit'
a     - svn-status-add-file              run 'svn add --non-recursive'
A     - svn-status-add-file-recursively  run 'svn add'
+     - svn-status-make-directory        run 'svn mkdir'
R     - svn-status-mv                    run 'svn mv'
D     - svn-status-rm                    run 'svn rm'
M-c   - svn-status-cleanup               run 'svn cleanup'
b     - svn-status-blame                 run 'svn blame'
X e   - svn-status-export                run 'svn export'
RET   - svn-status-find-file-or-examine-directory
^     - svn-status-examine-parent
~     - svn-status-get-specific-revision
E     - svn-status-ediff-with-revision
X X   - svn-status-resolve-conflicts
s     - svn-status-show-process-buffer
e     - svn-status-toggle-edit-cmd-flag
?     - svn-status-toggle-hide-unknown
_     - svn-status-toggle-hide-unmodified
m     - svn-status-set-user-mark
u     - svn-status-unset-user-mark
$     - svn-status-toggle-elide
w     - svn-status-copy-filename-as-kill
DEL   - svn-status-unset-user-mark-backwards
* !   - svn-status-unset-all-usermarks
* ?   - svn-status-mark-unknown
* A   - svn-status-mark-added
* M   - svn-status-mark-modified
* D   - svn-status-mark-deleted
* *   - svn-status-mark-changed
.     - svn-status-goto-root-or-return
f     - svn-status-find-file
o     - svn-status-find-file-other-window
v     - svn-status-view-file-other-window
I     - svn-status-parse-info
V     - svn-status-svnversion
P l   - svn-status-property-list
P s   - svn-status-property-set
P d   - svn-status-property-delete
P e   - svn-status-property-edit-one-entry
P i   - svn-status-property-ignore-file
P I   - svn-status-property-ignore-file-extension
P C-i - svn-status-property-edit-svn-ignore
P k   - svn-status-property-set-keyword-list
P y   - svn-status-property-set-eol-style
P x   - svn-status-property-set-executable
h     - svn-status-use-history
q     - svn-status-bury-buffer

C-x C-j - svn-status-dired-jump

它和 EmacsVC 配合起来用就非常完美了! ;)

psvn内部控制 通过psvn 协议进行传输内部控制 立即下载

相关推荐

Stata: 空间面板数据模型及Stata实现

  作者:游万海 (福州大学) Stata 连享会: 知乎 | 简书 | 码云 | 优快云   来源:Golgher 和 Voss (2016)   1. 背景介绍 由于面板数据模型所具有的众多优点 (刻画个体异质性,减弱模型共线性和增加自由度等),其被广泛应用于实证计量中。在 「 Stata: 面板数据模型-一文读懂」 文中,我们已对面板数据模型进行了介绍。 然而,当研究样本涉及到多个...

Stata连享会 7万+

Emacs中的版本控制

原文转载至http://lifegoo.pluskid.org/wiki/EmacsVC.htmlEmacs VC 是 Emacs 里面的一个 minor mode 。使用 VC ,你可以很方便地进行版本控制,VC 为你隐藏了几乎所有的版本控制的细节问题,你只要记住一个 VC命令,就能完成几乎所有的版本控制操作,VC 会替你运行正确的命令。Emacs VC 的基本概念Emac...

weixin_33907511的博客 411

广东电信兆能Z82盒子救砖记:手把手教你用U盘强刷HI3798MV100固件(附短接图)

本文详细介绍了广东电信兆能Z82盒子变砖后的救砖方法,重点讲解了使用U盘强刷HI3798MV100固件的全流程,包括诊断、准备工作、短接操作及刷机后的优化设置。特别针对m8233主板和8188无线方案的机型,提供了实用的短接图和操作技巧,帮助用户成功恢复设备。

weixin_30325487的博客 403

Emacs模式(Mode)

Emacs模式(Mode) 分类: Emacs模式(Mode) 当我们启动某一文件时,Emacs 会判断文件的类型,从而自动选择相应的模式。当然,我们也可以手动启动各种模式。先按M-x,然后输入模式的名称。 比如启动“C模式”,就是M-x c-mode。直接按下M-x,然后按两下Tab键,你将得到所有可执行的命令,这里面当然包括所有的模式。因此,你要想不起来某个命令的名称,就

xiaoshubiao的专栏 2335

DFT知识点扫盲——DFT scan chain

实际在项目中synccell一般直接上ULVT,既然是SDF,就是带Scan接口的DFF,SN (set negtive)是低置位,RP(reset positive)是高复位,既没有SN也没有RP的就是无复位寄存器。1:定义:满足可测试性设计(DFT),将设计中所有的触发器连接到一条或者若干条链上,称为scan chain,将一个复杂的时序电路转换为简单的组合电路进行测试,这一步是在逻辑综合(DC)中实现。当SE=1当SI=1时,电路进入scan状态,当SI=0时,电路工作在normal状态。

笨蛋大乌龟的博客 4936

星空组网 vs 蒲公英 vs Tailscale:2024年国内免费异地组网工具横评(含实测数据)

本文对2024年国内主流免费异地组网工具星空组网、蒲公英和Tailscale进行了深度横向评测。基于实测数据,重点分析了三者在P2P成功率、中继延迟、传输速度及稳定性方面的表现,为中小企业、远程办公及个人开发者提供了清晰的选择指南。星空组网在国内网络环境下展现出优秀的平衡性。

weixin_29217235的博客 1439

emacs与VC环境变量

(原创文章,未经作者许可,不得擅自删除本声明或更改文章内容,转载请注明出处。)相信很多朋友都喜欢在emacs里写程序,但是对于windows用户来说,常常会碰到一个恼人的问题,就是如何在emacs里调用VC的编译器来编译程序,将就的办法就是用 M-x shell 打开一个shell,然后在shell里运行VC安装目录下的VCVARS32.dat来注册环境变量,这样每一次打开shell都要注册一

一溪云——云淡风清的陪伴 3196

三维重建/SLAM笔记_最佳学习路线/攻略

本文目的 学习三维重建,需要不少知识,而知识之间又存在不同的依赖关系,为了后来人能少走弯路,也为了对自己的知识框架系统总结,特记录自己的学习路线。 学习心得 关于读书,了解基础知识是一方面,产生疑问也是一方面,为以后知道学习什么留下印象; 一回生,二回熟,看不懂时,大多是因为先验知识不够,没关系,多查多想,总会搞懂的。 学习路线 1.计算机图形学基础(OpenGL基础版)(徐文鹏 清...

惊鸿一博 3291

[转]emacs+psvn

psvn:一个emacs的插件,官方有比较详细的介绍:http://www.xsteve.at/prg/vc_svn/,不过是E文的。 当然也可以看这里(中文的):http://lifegoo.pluskid.org/wiki/EmacsSubversion.html和http://emacser.com/svn-status-mode-line.htm 首先下载命令行的subversion,

Elta学习 5676

Cesium 相机操作

Cesium 提供了三种方式对相机的位置进行摆放。

虎康的博客 2589

【ESP32摄像头开发实例】-视频流接入Home Assistant

在这个项目中,我们将使用ESP32-CAM板构建一个IP监控摄像头。ESP32摄像头将托管一个视频流媒体网络服务器,您可以使用网络中的任何设备进行访问。

视觉与物联智能 791

emacs调用SVN进行更新、提交、比较

需要安装SVN的TortoiseSVN客户端。 然后把下面的代码加入到.emacs文件: [code="list"] (defun svn-update() "Svn update" (interactive) (let ((cmd (concat "TortoiseProc.exe /command:update /path:\"" buffer-file-n...

wondery 445

工业质检封神!YOLOv8实战金属表面缺陷检测,自建数据集mAP突破95%

本文详细介绍了基于YOLOv8的金属表面缺陷检测实战方案。针对工业质检中的光照不均、纹理复杂、小样本等挑战,作者构建了12000张图像的数据集,提出针对性数据增强策略和两阶段训练方法。通过优化损失函数、调整超参数等技术手段,最终在测试集上达到95.1%的mAP@0.5,检测速度32FPS。相比传统方法,该方案在精度和鲁棒性上均有显著提升,为工业视觉质检提供了可复现的落地解决方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 428

SVN详细配置与使用 ——一步步教会您使用

  项目管理在项目开发活动中起到非常重要的作用,而对于初学者来说学习有一定的难度,且不说如何使用,就是搭建过程恐怕也要费一般周折,介于此下面就通过图解的方式一步一步详细的教大家如何使用SVN,你只要耐心的一步步去实践就能掌握 目录: 一、SVN介绍 二、SVN服务器安装 三、SVN客户端安装 四、SVN服务配置 五、SVN客户使用 六、Eclipse SVN客户端插件安装 ...

weixin_33840661的博客 2648

Devexpress16.2.6破解工具

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

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

VC code 使用总结

快捷键 在当前行下方插入一行:Ctrl+Enter

你好,时光 6459

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

linux下svn安装配置

1、yum install subversion root用户登录,执行yum install subversion。 [root@localhost ~]# yum install subversion Loaded plugins: fastestmirror, product-id, subscription-manager This system is not registered

nisjlvhudy的专栏 2246

OV9734 DATASHEET,完整规格书

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

Java学习笔记4

Java Day 04 Idea ​ 总体来说,好用。 ​ 优点:集成环境:编译、运行、调试于一体。有语法检查(说的就是你→ ;),有括号补全,多行注释补全,快捷键多。 ​ 缺点:复杂一点,跑起来比notepad慢点,没中文。 常用快捷键 psvm + 回车 : 快速生成main方法。 //输入psvn,回车 public static void main(String[] args){ } ​ //输入sout,回车 System.out.println(); a

嘘嘘喵的博客 346

psvn is the best svn client under linux!

psvn is the best svn client under linux!

idning 193

用emacs做为C/C++集成开发环境

用emacs做为C/C++集成开发环境    

zzmgx的专栏 1655

Pysvn 程序员指南

原文参见:http://chenxiaoyu.org/blog/archives/75 这是一篇关于pysvn模块的指南.完整和详细的API请参考 pysvn Programmer’s Reference.pysvn是操作Subversion版本控制的Python接口模块. 这个API接口可以管理一个工作副本, 查询档案库, 和同步两个.该API不能创建

smallfish | http://chenxiaoyu.org/blog 3499

vim/neovim VS emacs主观感受

程序员圈子里非常经典的一句话:中文通常翻译为:Vim 是编辑器之神,Emacs 是神的编辑器。也有一种更贴切的表达:Vim 是神级编辑器,Emacs 是神仙用的编辑器。

lxyoucan的博客 237

Emacs GUI 界面调成深色

本文AI生成,亲测有效。

lxyoucan的博客 174

emacs 不装插件搜索文件

总体来说 按C-x p f最好用,通用性可以。但是对比LazyVim之中那种Space ff 的搜索,效率上差上一大截。属于可以搜索,但是要按tab,补充关键字。文本搜索,也是可以搜索,但是不能像LazyVim 之中的Space / 可以随时修改关键字,那种丝滑感。

lxyoucan的博客 371
上一篇: automake,autoconf,make
下一篇: 建立wordpress 个人blog
Emacx
博客等级 码龄16年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值