我想知道如何Subversion更改我的更改所显示的名称.
我刚刚开始使用Subversion.我正在使用它在XP笔记本电脑上版本控制代码,我总是以我妻子的名字登录.我希望subversion DB在我的名字下显示更改.
稍后我将复制数据库,以便整个房子可以访问它.我的妻子使用办公室电脑,她总是以我的名义登录.我可能会设置它,以便自动检查修改后的文档...最好是在她的名下.
最终我可能会在另一个用户名的Linux机器上使用它.
有没有办法修改用户环境来更改Subversion调用你的用户名?我希望设置SVN_USERNAME='Mark'会覆盖,但它通常会得到名称.
更新:看起来--usernameMichael提到的标志确实可以更改报告的名称"svn stat",即使对于本地文件:存储库也是如此.此外,它是粘性的,因此您无需为下一个命令指定它.我甚至重新启动它仍然使用"--username"我之前启动时的值.
我一直想知道,堵塞的重点是什么?就像我所知,clog和cerr一样,但是有了缓冲,所以效率更高.通常stderr与stdout相同,因此clog与cout相同.这对我来说似乎很蹩脚,所以我认为我必须误解它.如果我将消息发送到同一个地方,我会收到错误信息(可能是/ var/log/messages中的内容),那么我可能不会写太多(因此使用非 - 缓冲的cerr).根据我的经验,我希望我的日志消息是最新的(不缓冲)所以我可以帮助找到崩溃(所以我不想使用缓冲的阻塞).显然我应该一直使用cerr.
我希望能够在我的程序中重定向阻塞.重定向cerr会很有用,这样当我调用库例程时,我可以控制cerr和clog的去向.有些编译器可以支持吗?我刚检查了DJGPP,stdout被定义为FILE结构的地址,因此执行"stdout = freopen(...)"之类的操作是违法的.
我一直试图在Python中找到RAII.资源分配是初始化是C++中的一种模式,在该模式中,对象在创建时进行初始化.如果失败,则抛出异常.通过这种方式,程序员知道对象永远不会处于半构造状态.Python可以做到这一点.
但RAII也适用于C++的范围规则,以确保迅速破坏对象.一旦变量弹出堆栈就会被破坏.这可能发生在Python中,但仅限于没有外部或循环引用.
更重要的是,对象的名称仍然存在,直到它退出的函数(有时更长).模块级别的变量将在模块的使用寿命期间保持不变.
如果我这样做,我想得到一个错误:
for x in some_list:
...
... 100 lines later ...
for i in x:
# Oops! Forgot to define x first, but... where's my error?
...
Run Code Online (Sandbox Code Playgroud)
我可以在使用它之后手动删除这些名称,但这样会非常难看,而且我需要付出努力.
我希望在这种情况下做什么 - 我意味着什么:
for x in some_list:
surface = x.getSurface()
new_points = []
for x,y,z in surface.points:
... # Do something with the points
new_points.append( (x,y,z) )
surface.points = new_points
x.setSurface(surface)
Run Code Online (Sandbox Code Playgroud)
Python做了一些范围界定,但不是在缩进级别,只是在功能级别.要求我创建一个新函数来定义变量以便我可以重用一个名称似乎很愚蠢.
Python 2.5具有"with"语句,
但这需要我明确地放入__enter__和__exit__函数,并且通常似乎更倾向于清理文件和互斥锁等资源,而不管退出向量.它对范围界定没有帮助.或者我错过了什么?
我搜索过"Python RAII"和"Python范围",我无法直接和权威地找到解决问题的任何内容.我查看了所有的PEP.这个概念似乎没有在Python中得到解决.
我是一个坏人,因为我想在Python中使用范围变量?这是不太Pythonic?
我不是喜欢它吗?
也许我正试图剥夺语言动态方面的好处.有时希望范围得到执行是否自私?
我是否因为希望编译器/解释器能够捕获我的疏忽变量重用错误而懒惰?嗯,是的,当然我很懒,但我是不是很懒?
是否可能,如果是,那么怎么做,创建一个类的新对象会返回除对象本身之外的东西?
假设,我希望每个新创建的对象都以包含自身的列表开头.
>> class A:
*magic*
>> a = A()
>> print a
[<__main__.A instance at 0x01234567>]
Run Code Online (Sandbox Code Playgroud)
可能它可以通过__new__某种方式覆盖方法来完成,但是如何?