我知道回滚可以从本地存储库中的最新变更集中删除提交.但是,是否可以删除自上次推送以来的所有最新提交,而无需重新克隆共享存储库?
我的Clearcase存储库中有一个文件.我检查了一下并修改了它,然后重新检查了它.
我没有做任何事情,比如在我的流/视图中制作基线,变基或传递.
我很遗憾对此文件进行了更改 - 回想起来,我应该撤消结帐.
如何回滚修改?(或撤消,或恢复,或任何正确的命名法.)
根据JAVA文档,Connection#commit()可以抛出SQLException.我的问题是在这种情况下是否仍应发布回滚.
例如:
Connection con = null;
try {
// assume this method returns an opened connection with setAutoCommit(false)
con = createConnection();
// do DB stuff
con.commit();
} catch (SQLException e) {
if (con != null) {
// what if con.commit() failed, is this still necessary,
// will it hurt anything?
con.rollback();
}
} finally {
if (con != null) {
con.close();
}
}
Run Code Online (Sandbox Code Playgroud)
我实际上将con.rollback()调用包装到另一个方法中,该方法忽略了它抛出的任何异常,所以我想我在这里没问题.我只是想知道这是否是处理事情的最佳方式.
考虑以下:
START TRANSACTION;
BEGIN;
INSERT INTO prp_property1 (module_name,environment_name,NAME,VALUE) VALUES ('','production','','300000');
/** Assume there is syntax error SQL here...**/
Blah blah blah
DELETE FROM prp_property1 WHERE environment_name = 'production';
COMMIT TRANSACTION;
Run Code Online (Sandbox Code Playgroud)
题:
我注意到事务自动回滚并且记录插入尝试失败.
如果我没有提供错误处理程序或错误检查以及ROLLBACK TRANSACTION如上所述,它是否安全,因为它似乎在上面的例子中执行工作,因为COMMIT TRANSACTION永远不会执行?
我假设事务立即回滚并在发生错误时立即丢弃.
我之前从未使用过Transaction,Commit和Rollback,现在我需要使用一个.我已经在网上查了一些例子,以确保我实际上正确地使用了这个,但我仍然不确定我是否编码正确.我希望有人可以审查并告诉我这是否正确.
基本上我有一个应用程序的2个数据库.一个是归档 - 意味着不再由用户操纵的数据将被移动到该DB.但是如果他们需要它,我会将所需的数据移回主数据库以供使用.我的存储过程如下:
CREATE PROCEDURE [dbo].[spReopenClosed]
(
@Return_Message VARCHAR(1024) = '' OUT,
@IID uniqueidentifier,
@OpenDate smalldatetime,
@ReopenedBy uniqueidentifier
)
AS
BEGIN
SET NOCOUNT ON;
/******************************
* Variable Declarations
*******************************/
DECLARE @ErrorCode int
/******************************
* Initialize Variables
*******************************/
SELECT @ErrorCode = @@ERROR
IF @ErrorCode = 0
BEGIN TRANSACTION
/****************************************************************************
* Step 1
* Copy the Closed from the Archive
****************************************************************************/
INSERT INTO OPS.dbo.SM_T_In
SELECT
FROM OPS_ARCHIVE.Archive.SM_T_In W
WHERE W.GUID = @IID
AND W.OpenDate = @OpenDate
IF @ErrorCode <> 0
BEGIN …Run Code Online (Sandbox Code Playgroud) 这是我的问题:
我正在Java EE/Spring/Hibernate应用程序上运行批处理.这个批次调用了method1.这个方法调用一个method2可以抛出的UserException(一个类扩展RuntimeException).这是它的样子:
@Transactional
public class BatchService implements IBatchService {
@Transactional(propagation=Propagation.REQUIRES_NEW)
public User method2(User user) {
// Processing, which can throw a RuntimeException
}
public void method1() {
// ...
try {
this.method2(user);
} catch (UserException e) {
// ...
}
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
在执行继续时捕获异常,但在method1事务关闭结束时抛出RollbackException.
这是堆栈跟踪:
org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:476)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
at …Run Code Online (Sandbox Code Playgroud) 我有点惊讶地发现,DDL语句(alter table,create index等)隐含在MySQL提交当前事务.来自MS SQL Server,在本地事务中进行数据库更改(然后回滚)的能力是我工作流程的重要部分.对于持续集成,如果迁移因任何原因而被打扰,则使用回滚,这样至少我们不会使数据库处于半迁移状态.
在迁移和持续集成中使用MySQL时,人们如何解决这两个问题?
我在转变121.
我想回滚到版本112,忽略了自那时以来我所做的所有更改.
我找到了这个答案,但我在菜单中找不到该命令.我现在一个小时都在苦苦挣扎,找不到真正的解决方案.我所要做的就是回滚到更改集112,无视自那时以来所做的所有更改.就像回到过去完全抹去过去一样.
通常当我这样做
$ rake db:rollback
Run Code Online (Sandbox Code Playgroud)
它回滚一次迁移.但现在,反复多次,它已经回滚了3个步骤.
怎么来这个行为?
我在Rails 3.2.13上.
rollback ×10
transactions ×4
commit ×2
java ×2
mercurial ×2
mysql ×2
changeset ×1
checkin ×1
clearcase ×1
connection ×1
ddl ×1
hibernate ×1
jdbc ×1
repository ×1
spring ×1
sql-server ×1
tfs ×1