我正在Github上开发一些私有项目,我想在我的部署服务器上添加夜间cronjobs以从github中提取最新版本.我目前正在通过在每个部署服务器上生成密钥对并将公钥作为"部署密钥"添加到github项目来实现此目的.
但是,我最近发现这些部署密钥确实具有对项目的写访问权.因此,每个服务器管理员都可能开始编辑.此外,我可以将每个部署密钥仅添加到一个存储库,而我希望能够在同一个部署服务器上部署多个存储库.
有没有办法为Github上的选定用户提供私有存储库的只读访问权限?
去年,我在一所大学的物理研究小组实习.在这一组中,我们主要使用LabVIEW编写程序来控制我们的设置,进行数据采集和分析数据.对于前两个目的,这非常正常,但对于数据分析,这是一个真正的痛苦.最重要的是,每个人都大多是自学成才,因此编写的代码通常非常混乱(难怪每个博士都迅速决定从头开始重写所有内容).由于IT部门严格的软件和网络规定,版本控制未知,无法设置.
现在,实际上事情确实令人惊讶,但是自然科学中的人们如何进行软件开发呢?
一些具体问题:
到目前为止的答案(或我对它们的解释):( 2008-10-11)
我的开源Android应用程序采用Android方式进行国际化,使用strings.xml文件.
社区有许多来自许多国家的人,他们愿意使用协作网站贡献/改进翻译.
有Launchpad,但它只支持gettext格式,所以我们必须使用脚本,不是很方便.
什么网站方便翻译开源Android应用程序?
任何人都必须能够在没有任何事先批准的情况下开始贡献.
我知道在我调用(start-server)现有的Emacs会话后,我可以使用emacsclient -c(在同一台计算机上)创建连接到该服务器的新帧,这样创建的每个新帧emacsclient都可以访问同一组共享状态(例如缓冲区) ).
我发现的大多数文档都集中在"让我快速访问我的本地Emacs"用例,所以有两件事我还没有看到任何细节:
可以emacsclient -c访问由其他用户启动的Emacs服务器,还是仅通过硬连线检测我自己的用户启动的会话?
Emacs服务器(直接或间接)是否支持远程连接?也就是说,有没有办法设置Emacs(可能涉及SSH),允许远程机器emacsclient -c上的调用访问我的Emacs服务器的本地状态?
(如果你还没有猜到,我最终想要做的是结合上面的两种技术来提供基本的协作编辑支持.)
这是一个现实世界的问题,所以这就是我正在使用的:
su或ssh).如果它有所不同,机器在私有LAN上,安装(并运行)OpenSSH客户端和服务器,并且所有用户都可以连接到(他们自己的帐户)所有机器,但它们没有共享文件系统.
那么,有没有人知道Emacs服务器是否可以
编辑
正如在rwb的回答中所评论的那样,很明显,通过运行emacsclient -c在本地打开的新窗口实际上是由远程 Emacs服务器进程创建的.也就是说,emacsclient只是触发服务器中的相关行为.这会导致显示设置不正确的一些问题,因为服务器通常无法访问本地桌面(请参阅下文).但是,如果我使用以下命令序列,我现在可以连接到远程Emacs会话:
在一个终端中,1.22.333.44IP地址在哪里remotehost:
ssh -t -X remotehost \
"emacs -nw --eval
'(progn (setq server-host \"1.22.333.44\" server-use-tcp t) (server-start))'"
Run Code Online (Sandbox Code Playgroud)
然后在另一个(在同一台机器上):
scp remotehost:.emacs.d/server/server /tmp/server-file
DISPLAY=localhost:10 emacsclient -c -f /tmp/server-file
Run Code Online (Sandbox Code Playgroud)
该emacsclient命令使远程Emacs服务器(它找到其中的详细信息/tmp/server-file …
我们有多个开发人员在使用Entity Framework 5.0的项目上工作.每个开发人员都使用自己的本地SQL 2012数据库,这样他就可以开发和测试而不会妨碍其他人.
起初,我们使用了自动迁移和基于代码的迁移的混合体.这根本不起作用,所以我们决定禁用自动迁移,只允许基于代码.我应该补充一点,我们再次启动了一个干净的数据库而没有_MigrationsHistory来自所有自动迁移的"损坏" .
所以现在的工作流程是:
add-migration <Name>将其应用于他的数据库update-database.到目前为止,这运作良好.然而,在今天之前,通常只有我做了迁移而其他人应用了它们.但今天有来自三个开发人员的迁移.我刚刚完成了这些迁移,做了一件update-database好事.
我也对自己的数据模型进行了更改,但是在结束时update-database它给了我一个警告,我仍然没有更新,所以我做了add-migration <my migration>.但是,当它支持迁移时,它给了我已经应用到数据库的所有迁移的更改.所以:它试图删除已经删除的列,尝试创建一个已经存在的表,等等.
怎么可能?我的假设是EF只是检查_MigrationsHistory表格并找出表格中没有的迁移,并按名称的时间戳顺序应用这些迁移.但显然不是,因为即使我撤消自己的更改并且我有一个干净的环境,它仍然抱怨我的数据库与模型不同步.但我只是将这些更改删除并应用到我的数据库中.它是同步的.我也可以看到我刚才在_MigrationsHistory表格中应用的迁移.
我唯一能想到的是我在一个不会导致数据库更改的数据模型中添加了一个属性(我List<X>在数据模型中添加了一个Y,其中X是一对多关系中的多个.这不会导致数据库更改,因为X已经有一个外键到Y).可能是吗?如果是这样,那真的很脆弱,因为没有办法为此添加迁移,因为没有数据库更改,我也不知道如何解决这个问题.
我不知道如何处理这个问题,因为我当然可以编辑它所支撑的内容并删除已经应用于我的数据库的所有内容.但那又怎样?我检查它然后其他一些开发人员得到相同的消息,即使他的数据库不适用于我的新更改,支持他自己的更改,获取相同的无意义脚手架,编辑它,检查它然后下一个开发者得到它.它变成了一个恶性循环,与我们使用自动迁移时的情况类似,我认为我们已经通过切换到基于代码的方式来解决这个问题.我现在不能相信做正确的事情,这样做是一场噩梦.
我也尝试过添加我从同事那里逐一删除的迁移,update-database -t:201211091112102_<migrationname>但无济于事.它仍然给我错误的脚手架.
那么我们在这里做错了什么,或者EF根本不是为这样的协作而构建的?
UPDATE
我创建了一个可重现的测试用例,虽然为了模拟这个多用户/多数据库场景,它有点冗长的舞蹈.
https://github.com/JulianR/EfMigrationsTest/
有上述项目时重现的步骤(这些步骤也出现在代码中):
以上是模拟三个用户,其中用户1进入他的数据库,另外两个用户也使用他的初始化来创建他们的数据库.然后,用户2和用户3都对数据模型进行自己的更改,并将其与应用更改所需的迁移一起添加到源控件.然后,用户1拉动用户2和3的更改,而用户1也自己对数据库进行了更改.然后,用户1调用update-database以应用用户2和3的更改.然后,他自己进行迁移,然后错误地将用户2或3的更改添加到脚手架迁移,这会在应用于用户1的数据库时导致错误.
我正在寻找一个协作的UML兼容工具.我在两个地理分布的团队的背景下工作,我们需要在设计的模型上一起工作.
是否有基于Web的UML建模工具与模型共享?
有没有办法在git-svn创建的git存储库上设置subversion属性?
在我的情况,我想编辑的版本svn:external,svn:ignore以及
svn:executable.
但是,这样做的唯一方法似乎是涉及到subversion客户端的签出.有没有不必两次检查出库(一个时间Git和一次与SVN的属性)来编辑SVN属性的方法吗?
您的一名团队成员被任命为"技术主管"或"团队领导",但他在技术上不称职,缺乏重要的领导技能.
技术上无能,我的意思是这个人不知道抽象类和接口之间的区别,不明白为什么要避免耦合,不理解凝聚力的概念,提供解决方案而不需要花些时间去思考,不明白为什么我们应该支持组合而不是继承,并且不会得到设计模式(除了单例模式).
此外,这个人有超过10年的"经验"(是的,我确实把这个词放在引号中,因为他给出了一个完全不同的经验体验).
我在和工作中的这个人打交道.它消除了我对这个职业的热情.
你怎么反应?你是做什么?
或者,如果没有,是否有任何好的IDE或程序专为实时协作编程而设计?
collaboration ×10
git ×2
android ×1
c# ×1
emacs ×1
emacsclient ×1
git-svn ×1
github ×1
google-docs ×1
localization ×1
migration ×1
physics ×1
public-key ×1
readonly ×1
svn ×1
tmux ×1
uml ×1