小编Øys*_*ren的帖子

如何在大型Lotus Notes项目中合并版本控制(Git)

我们正在维护一个基于Lotus Notes的大型网站,该网站在Domino Server 8.5.3上运行.最近我们厌倦了我们项目中缺乏源代码控制,所以我们认为我们会尝试一点点改进.但是怎么做呢?

由于我不会在这里讨论的各种原因,我们无法在开发PC上本地运行我们的应用程序.我们只能在开发,登台和生产服务器上运行它们.(不幸的是,在开发PC上运行的本地Domino服务器不是一种选择.)

该图说明了目前的情况:

现在的情况. 哦,恐怖......

在生产(和登台)中,有多个网站都具有相同的功能.它们基本上是相同设计的相同网站,但内容不同.每个站点都包含许多Notes数据库(新闻,存档,讨论等).这些数据库的设计对于所有站点都是相同的,因此它们都从同一组主模板(NewsTemplate,ArchiveTemplate,DiscussionTemplate等)继承了它们的设计.

主模板的一组副本驻留在开发服务器上.部署新功能时,所需的代码更改将添加到Dev上的模板中.服务器(更多细节见下文).然后将这些模板复制到Staging服务器进行测试,最后复制到生产服务器.这部分效果很好.

这些问题可以在图的下半部分找到.我们目前是两个开发人员,我们都在同一组开发人员中工作.开发中的数据库(新闻,档案,讨论等).服务器.当然,我们一直在绊倒彼此的工作,这非常令人沮丧.在部署时,将从dev集合中有选择地复制/粘贴要部署的代码.数据库到开发者.模板.这是手动完成的,因此出错的风险很高.我们不能简单地用dev的模板替换模板的设计.数据库,因为开发.数据库始终包含正在开发的代码.所以我们必须非常谨慎地只部署"完成"的代码.此外,我们没有变化的历史.这是一个可怕的,可怕的,

现在,使用Git,本地副本,数据库副本或诸如此类,什么是实现更简化的开发和部署方案的最佳方法?

git deployment version-control lotus-notes

8
推荐指数
1
解决办法
2172
查看次数

加载建议时,XPages Type Ahead失败

我们使用带有Type Ahead的inputText XPages控件进行自动完成.在搜索字段中输入内容时,不会显示任何建议.我们在"预输入类型"属性窗格中设置了以逗号分隔的建议列表,建议分隔符为",".我们也尝试过使用"新线"分离的建议.最小字符为"1".这是inputText的xml:

<xp:inputText id="inputText2">
<xp:typeAhead mode="partial" minChars="1" ignoreCase="true" valueListSeparator=",">
    <xp:this.valueList><![CDATA[Homer,Marge,Bart,Lisa,Maggie]]></xp:this.valueList>
</xp:typeAhead>
</xp:inputText>
Run Code Online (Sandbox Code Playgroud)

使用"完整"和"部分"模式都会失败,但会出现不同的错误.使用"full"时,对于在搜索字段中键入的每个字母,浏览器控制台中会显示以下错误(是的,所有这些都是由单键按下引起的):

Error: Unable to load undefined status:404
dijit.form.ComboBox: Error: Unable to load undefined status:404
Error: Unable to load undefined status:404
Error: Unable to load undefined status:404
Error: Unable to load undefined status:404
Run Code Online (Sandbox Code Playgroud)

类似地,对于模式"部分",为每个键入的字母显示以下错误消息:

'url' is null or not an object
Run Code Online (Sandbox Code Playgroud)

最后一个错误源自dojo.js(与Lotus Notes 8.5.3一起使用的缩小版本,第14行,字符84996).我们不确定这是哪个版本的dojo,因为它没有在缩小的脚本中说明,但我们认为版本1.6.1大致是正确的版本.我们已经隔离了导致错误的代码:

dojo._ioAddQueryToUrl = function(/*dojo.__IoCallbackArgs*/ioArgs){
    //summary: Adds query params discovered by the io deferred construction to the URL.
    //Only use this for operations which …
Run Code Online (Sandbox Code Playgroud)

lotus-notes autocomplete type-ahead xpages

5
推荐指数
1
解决办法
1615
查看次数

将Lotus Notes模板的设计替换为数据库的设计(或使数据库成为模板)

简短版本:在Lotus Notes中,是否可以使用常规数据库的设计替换模板的设计?我试图使数据库成为模板,因此它将显示在" 替换设计"对话框中,但事实并非如此.

长版:假设我的dev上有一个名为NewsTemplate.ntf的模板.服务器复制到staging和prod.按需服务器.我在dev上的数据库DevNews.nsf中进行所有开发工作.server,使我能够在开发过程中轻松地在Web浏览器中测试应用程序.当我想部署更改时,首先手动将更改从DevNews.nsf粘贴到NewsTemplate.ntf.(哎呀...)我可以使用Domino Designer中的比较工具来比较文件中的两个和复制更改文件,但这感觉过于繁琐.我想要做的只是将NewsTemplate.ntf的设计替换为DevNews.nsf的设计.

在" 替换设计"对话框中,仅列出了模板,因此我似乎必须使DevNews.nsf成为执行此操作的模板.我检查了数据库文件是应用程序属性中的主模板复选框,并输入了模板名称"DevNewsTemplate".但是,它仍未显示在" 替换设计"对话框的模板列表中.我注意到数据库仍然具有文件扩展名nsf.这是问题吗?我是否应该采用其他方法将设计更改从News.nsf复制到NewsTemplate.ntf

奖金问题1:模板是否可以包含文档并且像数据库一样工作,只有它也是用于将设计分发到其他模板/数据库的模板?

奖金问题2:该网站提到模板和主模板,但它并没有真正解释它们之间的区别.模板和主模板有什么区别?我如何制作模板?如何制作主模板?

编辑:

假设代替开发时的单个News.nsf数据库.服务器,有两个名为News1.nsf和News2.nsf的开发数据库,​​因为有两个开发人员需要自己的数据库才能工作.每个开发人员都有他的新闻*.nsf(驻留在开发服务器上)与他自己的PC上的磁盘项目,由Git进行源代码控制.两个开发人员的git repos通过从中央Git仓库推送/拉出来保持同步,因此News1.nsf和News2.nsf通过这个Git仓库间接同步.

每个开发人员都需要能够将更改从他的News*.nsf复制到NewsTemplate.ntf.Panu Haaramo建议的解决方案(使用Refresh设计)要求我设置NewsTemplate.ntf以继承"DevNewsTemplate"的设计,这是我为News1.nsf设置的主模板名称.显然我不能为News2.nsf使用相同的主模板名称,因为它驻留在同一个dev上.服务器为News1.nsf.如何将设计从News1.nsf或News2.nsf交换复制到NewsTemplate.ntf?

这个数字应该有助于澄清:

在此输入图像描述

templates lotus-notes

2
推荐指数
1
解决办法
1万
查看次数