]> source.dussan.org Git - jgit.git/commitdiff
Manage CheckoutConflictException in pgm 00/19100/3
authorAxel Richard <axel.richard@obeo.fr>
Fri, 29 Nov 2013 10:06:11 +0000 (11:06 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Fri, 29 Nov 2013 22:42:08 +0000 (23:42 +0100)
Change-Id: I49f92bf7cafc80404f0bd07d62ff4b25e4db6e7c
Signed-off-by: Axel Richard <axel.richard@obeo.fr>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Checkout.java
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java

index 1212d93652a1a4400b2f5a09cb32725859a74fe4..fc83b956b904d6cd3a121ee483a6410fdb1be92a 100644 (file)
@@ -36,6 +36,8 @@ cantFindGitDirectory=error: can't find git directory
 cantWrite=Can't write {0}
 changesNotStagedForCommit=Changes not staged for commit:
 changesToBeCommitted=Changes to be committed:
+checkoutConflict=error: Your local changes to the following files would be overwritten by checkout:
+checkoutConflictPathLine=\t{0}
 commitLabel=commit
 configFileNotFound=configuration file {0} not found
 conflictingUsageOf_git_dir_andArguments=conflicting usage of --git-dir and arguments
index 8115039729940da93040bdd767db66a9d9d61f0d..2f35ecbabd93086510e8dc78da560ffe622a86d6 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2010, 2012 Chris Aniszczyk <caniszczyk@gmail.com>
+ * Copyright (C) 2013, Obeo
  * and other copyright owners as documented in the project's IP log.
  *
  * This program and the accompanying materials are made available
@@ -47,6 +48,7 @@ import java.text.MessageFormat;
 
 import org.eclipse.jgit.api.CheckoutCommand;
 import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.errors.CheckoutConflictException;
 import org.eclipse.jgit.api.errors.RefAlreadyExistsException;
 import org.eclipse.jgit.api.errors.RefNotFoundException;
 import org.eclipse.jgit.lib.Constants;
@@ -107,6 +109,11 @@ class Checkout extends TextBuiltin {
                } catch (RefAlreadyExistsException e) {
                        throw die(MessageFormat.format(CLIText.get().branchAlreadyExists,
                                        name));
+               } catch (CheckoutConflictException e) {
+                       outw.println(CLIText.get().checkoutConflict);
+                       for (String path : e.getConflictingPaths())
+                               outw.println(MessageFormat.format(
+                                               CLIText.get().checkoutConflictPathLine, path));
                }
        }
 }
index de8675e0fb166808d778f9e3d3621eee5b4c4146..a51313ae1e50cb813db87f0025e3361693ce4bb4 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2010, 2013 Sasa Zivkov <sasa.zivkov@sap.com>
+ * Copyright (C) 2013, Obeo
  * and other copyright owners as documented in the project's IP log.
  *
  * This program and the accompanying materials are made available
@@ -106,6 +107,8 @@ public class CLIText extends TranslationBundle {
        /***/ public String cantWrite;
        /***/ public String changesNotStagedForCommit;
        /***/ public String changesToBeCommitted;
+       /***/ public String checkoutConflict;
+       /***/ public String checkoutConflictPathLine;
        /***/ public String commitLabel;
        /***/ public String conflictingUsageOf_git_dir_andArguments;
        /***/ public String couldNotCreateBranch;