我在一个软件项目上工作,该项目有一套经过周期性变化的源代码.代码通常被提升为生产环境,并且在开发环境中继续开发.生产中的紧急修补程序需要向后移植到开发中.第三种测试环境也可能不时存在.许多开发人员同时处理此代码,通常需要对同一个文件进行更改.
简而言之,是版本控制软件的经典用例.不幸的是,我们有一个石器时代的IT部门,我们在Windows XP环境中进行所有开发,绝对不可能在未经批准的情况下使用任何其他软件 - 这种情况从未发生过.我们很幸运有Winzip.
那么,没有任何真正的工具,管理上述工作流程的最佳方法是什么?目前我们只是在Windows共享驱动器上编辑文件,将临时工作副本制作成名为"James的X副本",使用Winzip进行备份以及在整个房间内调用的文件夹,"是否有人在处理此文件在这一刻?"
谢谢,詹姆斯
编辑:一些澄清:
具有讽刺意味的是系统几乎完全没有锁定 - 我可以在大约7分钟内下载,安装和配置TortoiseHg.但我需要通过这本书来做到这一点.
我也在积极寻求通过官方渠道获取版本控制软件,但是如果有的话,ETA就是6-9个月,所以我只是想用我现在拥有的东西做到最好.
最后,相信我,有一天你会在TheDailyWTF上阅读这个项目,所以请帮我解决我现在能做的事情,而不是上周管理层应该做些什么.
编辑:由于NPE的评论而推广了问题.
在Python 2.7.3交互式会话中:
>>> class Foo(object):
... pass
...
>>> type("Bar", (Foo,), {})
<class '__main__.Bar'>
>>> Foo.__subclasses__()
[<class '__main__.Bar'>]
>>>
Run Code Online (Sandbox Code Playgroud)
也:
>>> class Foo(object):
... pass
...
>>> class Bar(Foo):
... pass
...
>>> Foo.__subclasses__()
[<class '__main__.Bar'>]
>>> del Bar
>>> Foo.__subclasses__()
[<class '__main__.Bar'>]
Run Code Online (Sandbox Code Playgroud)
为什么Bar
还能通过该__subclasses__
功能获得?我本来以为它是垃圾收集的.
相反,如果我想要它被垃圾收集,我该怎么做?
在我的 SAS Enterprise Guide 会话的服务器列表中,我有一个白色(未分配)逻辑库,我可以右键单击它进行分配。是否有我可以在 EG 项目中使用的编程语句(可能是 libname 语句或任务)来自动执行此步骤?
如果从第一天开始启用连续存档,生成的日志是否是保存所有数据库操作的完整时间点历史记录的实用方法?我猜交易量将是一个因素,所以假设每天少于1000笔交易.
我有一台安装了Microsoft R Open的服务器.我是否可以限制System()
命令的使用,以便用户无法从R中调用shell命令?
如果这是不可能的,那是因为Microsoft R Open特定的原因,还是我要求的任何R实现根本不可能的?
通常,数据仓库是整合多个源系统的一种方法,通常用于报告目的.但是,在任何情况下,将数据仓库本身作为主数据库使用是个好主意(即捕获和管理数据,而不是从其他系统加载数据)?
我正在查看具有以下行的COBOL程序:
T41037* SELECT XX
Run Code Online (Sandbox Code Playgroud)
这是SQL语句的一部分.我相信它*
表明它被注释掉了.但是T41037意味着什么?
我正在查看一段包含以下行的COBOL代码:
SET NO-FURTHER-PROCESSING-REQD TO TRUE
Run Code Online (Sandbox Code Playgroud)
它还包含以下行:
IF FURTHER-PROCESSING-REQD
...
END-IF.
Run Code Online (Sandbox Code Playgroud)
是否有一些神奇的事情,没有"NO-"前缀的变量会自动设置为带有前缀的变量的反面?或者这更可能是程序员的疏忽?
该问题的答案表明:“但是,理想情况下,您不允许对表使用临时DML,而通过存储过程来控制所有DML。”
为什么这样理想?与将SELECT,UPDATE,INSERT,DELETE授予用户需要操纵的表相比,这解决了什么问题?