Tag: 版本控制

TransactionEventHandler在Node.setProperty()上给出javax.transaction.SystemException

我正在尝试实现一个类似于neo4j-versioning中使用的TransactionEventHandler ,以便创建一个时间机器样式,版本化的Neo4j数据库,现在使用Neo4j 2.x. 它失败并带有以下无限堆栈跟踪: javax.transaction.SystemException: TM has encountered some problem, please perform necessary action (tx recovery/restart) at org.neo4j.kernel.impl.transaction.TxManager.assertTmOk(TxManager.java:349) at org.neo4j.kernel.impl.transaction.TxManager.setRollbackOnly(TxManager.java:758) at org.neo4j.kernel.TransactionEventHandlers.beforeCompletion(TransactionEventHandlers.java:120) at org.neo4j.kernel.impl.core.TransactionEventsSyncHook.beforeCompletion(TransactionEventsSyncHook.java:68) at org.neo4j.kernel.impl.transaction.TransactionImpl.doBeforeCompletion(TransactionImpl.java:368) at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:398) at org.neo4j.kernel.impl.core.IsolatedTransactionTokenCreator.getOrCreate(IsolatedTransactionTokenCreator.java:61) at org.neo4j.kernel.impl.core.TokenHolder.createToken(TokenHolder.java:114) at org.neo4j.kernel.impl.core.TokenHolder.getOrCreateId(TokenHolder.java:102) at org.neo4j.kernel.impl.api.store.DiskLayer.propertyKeyGetOrCreateForName(DiskLayer.java:367) at org.neo4j.kernel.impl.api.store.CacheLayer.propertyKeyGetOrCreateForName(CacheLayer.java:370) at org.neo4j.kernel.impl.api.StateHandlingStatementOperations.propertyKeyGetOrCreateForName(StateHandlingStatementOperations.java:939) at org.neo4j.kernel.impl.api.DataIntegrityValidatingStatementOperations.propertyKeyGetOrCreateForName(DataIntegrityValidatingStatementOperations.java:67) at org.neo4j.kernel.impl.api.OperationsFacade.propertyKeyGetOrCreateForName(OperationsFacade.java:397) at org.neo4j.kernel.impl.core.NodeProxy.setProperty(NodeProxy.java:205) … 这是我的测试: @Test public void test() { GraphDatabaseService graphDb […]

使用java编程进行版本控制

在我的Java项目中,我需要为文件添加版本控制(如SVN),为同一文件夹中的相同命名文件维护不同的版本。 请帮我在java编程中如何做到这一点。 例如:在我的项目中,我维护了一个文件夹,其中包含由用户上传的一组图像。但是用户可以多次上传相同的命名图像。为了克服这种开销,我计划对每个相同的图像进行版本控制(相同)命名)。

针对git项目的Eclipse设置

关于这个主题有很多问题,但现在没有令人满意的答案,例如这个 。 我正在使用Eclipse Kepler(20130529-2219),ME2(1.4.0.20130601-0317)和Eclipse Git Team Provider(GIT 3.0.0.201306040240-rc3的Java实现)。 因此,在阅读了git之后,我开始期待很高兴。 首先,我打开了一个现有项目并删除了所有.svn垃圾并将其提交到本地git存储库。 完美 – 现在是时候将文件推送到远程存储库了。 在Windows上创建known_hosts文件时遇到一些问题,推送成功。 现在问题已经开始了:我想为存储库提取更改,但是“…未配置为pull”。 好的, 这里讨论了这是一个常见的问题,你必须删除项目,然后从远程服务器重新导入它以允许拉动。 因此,我再次设置所有内容并取消了项目。 到目前为止,我总是被告知.project文件不应该提交版本控制,因此我没有包含它们。 “import – > from git – > local”-menu无法将repo中的文件识别为Java项目。 因此,我只能将项目作为一般项目导入或使用项目wizzard并设置一个新的Maven项目,这是愚蠢的,因为所有信息都已存在于POM.xml中。 如果我进行普通项目导入,Eclipse不知道它是Java或Maven项目并且会抛出大量错误。 问题 (跳过详细问题):当没有.project文件存在时,是否有一些不太笨拙的方法从远程git仓库导入Maven和Java项目?

Eclipse在源代码管理中保存操作

我们想在签到之前找到一种强制执行代码标准的“轻量级”方法。 我们非常喜欢使用Eclipse的内置Save Actions (转到Preferences >> Java >> Editor >> Save Actions ),它具有Format source code函数,可以在开发人员每次保存文件时运行。 这样,只要每个开发人员使用相同的格式规则,并启用了保存操作 ,我们就可以相当舒服地通过代码进行审核,我们的代码标准已经实施(大多数情况下)。 我想弄清楚的是: Eclipse使用哪些文件来保存这些格式规则? 我如何将这样的文件保存在源代码管理中,并让开发人员检查出来? 它位于何处(工作区内)?

使用版本控制系统作为数据后端

我参与了一个项目,其中包括存储对大型分层文档(HTML格式文本)的编辑和更改。 我们希望包括文本更改和结构更改的版本控制。 目前我们正在维护关系数据库中的文档部分树,但是当我们开始研究如何管理结构更改的版本时,很明显我们必须编写许多版本控制的function系统提供。 我们不想重新发明轮子。 是否有可能我们可以使用现有的版本控制系统作为数据存储,至少对于文档本身? 据推测,我们可以通过向文件系统写出新版本,并将该目录保持在版本控制下(并以编程方式执行提交等)来实现,但如果我们可以通过代码直接与存储库进行交互会更好。 我们最熟悉的VCS是Subversion,但我对Subversion如何表示对目录结构的更改并不感到兴奋 – 如果我们能够看到特定的修订包括将第2章的内容移到第6章,那就太好了。而不是仅仅看到树的新版本。 这听起来更像是像Mercurial这样的系统处理结构变化的方式。 任何建议? VCS是否有公共API等等? 如果重要的话,该项目采用Java(使用Spring)。

你如何让Git与IntelliJ合作?

我将使用IntelliJ Community Edition的Git版本控制来制作我打算开发的程序的分支。 我正在努力使自己习惯于它的function,我遇到了障碍。 我按照网页http://wiki.jetbrains.net/intellij/Using_Git_Locally的说明操作,虽然我做了它的命令,当我到达Image5时,我在Default下找到一个空列表。 有可能我认为没关系,所以我继续这个程序。 但是,当我来到主要提交更改(修订版1)的最重要部分时,列表也是空的,并且提交更改未检测到对项目的任何更改(请参见图13和图14)。 除此之外,当我再次打开项目时,我收到一条消息,表明Git执行路径不正确。 但是,如何才能获得适当的执行路径以便插入它的知识? 有没有人知道一个体面的指令(在网站上或由他的经验丰富),它可以指导我如何利用Gitfunction将其融入我的工作? 对我来说,完成我的工作至关重要。

比较版本号字符串(主要,次要,修订版,测试版)

我有一个与设备固件通信的应用程序。 由于固件有变化,因此版本的格式为{major}.{minor}.{revision}[beta[{beta}]] 。 举几个例子,目前的版本是0.4.7beta ,接着是0.4.7beta2 ,偶尔是0.4.7 ,然后是0.4.8beta 。 遗憾的是,固件的版本控制格式不在我的控制之下,因此我无法对其进行更改。 我需要一种相互比较固件的方法。 基本上,我需要一个function boolean isFirmwareNewer(String testFW, String baseFW); 到目前为止我所做的是将这种格式转换为简单的int 。 因此0.4.7beta2将成为00040702 (每个级别2位数)。 问题是,那 我的代码难以阅读(> 40行和3种方法) 我相信,有一个优雅的解决方案(也许使用正则表达式?) 我希望有一个通配符0.0.0 ,它更新 这样处理beta版本不正确( 0.4.7beta2不比0.4.7更新)。 这很容易解释( if (testFW.contains(“beta”)) testFWValue -= 100;但它也不是很优雅。 你们是如何做到这一点的(或者你会怎么做)? 如果你愿意,我可以附上我目前正在使用的代码,但正如我所说,它是> 40行代码而不是真正可读(这就是我寻找更好的方法来实现这一目的的原因)。

如何在我们的Java jar中插入版本号,用户可以访问?

我们有一个库,每隔几周就会发布一个不同的版本号。 问题是,为了在我们的jar中存储版本号,我们有一个version.txt文件,它只包含版本号,然后包含在构建中。 这似乎是错误的方法,但我无法想出更好的解决方案。 有什么更好的方法可以将版本号存储在我们的jar中,这样如果用户给我打电话,我可以很容易地找到他们使用的产品版本?

在Eclipse中,如何获得相对于项目的启动配置?

我通常有一个项目的多个副本,例如:主干的副本和最后一个发布分支的另一个副本。 为了将我的项目文件与Eclipse完全分离,它们将从Eclipse工作区外部的目录中的Subversion中检出。 我想让项目可以轻松导入Eclipse并遵循多个 答案的说明 。 问题是我的.launch文件的项目名称是硬编码的。 导入新项目时,只要项目与导出的项目具有完全相同的名称,启动文件就会显示在“运行配置”菜单中。 这禁止我有同一个项目的两个版本。 看起来这样做的唯一方法是从Ant任务生成.launch和.project文件,但我没有看到有人使用此解决方案。 也许我应该有多个工作区,项目总是具有相同的名称。 最好的方法是什么? 编辑:我将VonC标记为答案,但不要错过评论。

推荐的源控制目录结构?

我将在新的J2EE Web应用程序上使用Subversion进行源代码控制。 您建议使用什么目录结构来组织代码,测试和文档?