Mercurial > jhg
comparison src/org/tmatesoft/hg/repo/HgRepository.java @ 636:ffce73efa2c2
HgCommitCommand: save last commit message
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Thu, 06 Jun 2013 19:39:06 +0200 |
| parents | 6526d8adbc0f |
| children | c75297c17867 |
comparison
equal
deleted
inserted
replaced
| 635:4ec2d44e2bf3 | 636:ffce73efa2c2 |
|---|---|
| 30 import org.tmatesoft.hg.core.HgIOException; | 30 import org.tmatesoft.hg.core.HgIOException; |
| 31 import org.tmatesoft.hg.core.Nodeid; | 31 import org.tmatesoft.hg.core.Nodeid; |
| 32 import org.tmatesoft.hg.core.SessionContext; | 32 import org.tmatesoft.hg.core.SessionContext; |
| 33 import org.tmatesoft.hg.internal.ConfigFile; | 33 import org.tmatesoft.hg.internal.ConfigFile; |
| 34 import org.tmatesoft.hg.internal.DirstateReader; | 34 import org.tmatesoft.hg.internal.DirstateReader; |
| 35 import org.tmatesoft.hg.internal.FileUtils; | |
| 35 import org.tmatesoft.hg.internal.Filter; | 36 import org.tmatesoft.hg.internal.Filter; |
| 36 import org.tmatesoft.hg.internal.Internals; | 37 import org.tmatesoft.hg.internal.Internals; |
| 37 import org.tmatesoft.hg.internal.PropertyMarshal; | 38 import org.tmatesoft.hg.internal.PropertyMarshal; |
| 38 import org.tmatesoft.hg.internal.RevlogStream; | 39 import org.tmatesoft.hg.internal.RevlogStream; |
| 39 import org.tmatesoft.hg.internal.SubrepoManager; | 40 import org.tmatesoft.hg.internal.SubrepoManager; |
| 357 * | 358 * |
| 358 * @return message used for last commit attempt, or <code>null</code> if none | 359 * @return message used for last commit attempt, or <code>null</code> if none |
| 359 * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> | 360 * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> |
| 360 */ | 361 */ |
| 361 public String getCommitLastMessage() throws HgInvalidControlFileException { | 362 public String getCommitLastMessage() throws HgInvalidControlFileException { |
| 362 File lastMessage = impl.getFileFromRepoDir(LastMessage.getPath()); | 363 File lastMessage = impl.getRepositoryFile(LastMessage); |
| 363 if (!lastMessage.canRead()) { | 364 if (!lastMessage.canRead()) { |
| 364 return null; | 365 return null; |
| 365 } | 366 } |
| 366 FileReader fr = null; | 367 FileReader fr = null; |
| 367 try { | 368 try { |
| 370 fr.read(cb); | 371 fr.read(cb); |
| 371 return cb.flip().toString(); | 372 return cb.flip().toString(); |
| 372 } catch (IOException ex) { | 373 } catch (IOException ex) { |
| 373 throw new HgInvalidControlFileException("Can't retrieve message of last commit attempt", ex, lastMessage); | 374 throw new HgInvalidControlFileException("Can't retrieve message of last commit attempt", ex, lastMessage); |
| 374 } finally { | 375 } finally { |
| 375 if (fr != null) { | 376 new FileUtils(getSessionContext().getLog()).closeQuietly(fr, lastMessage); |
| 376 try { | |
| 377 fr.close(); | |
| 378 } catch (IOException ex) { | |
| 379 getSessionContext().getLog().dump(getClass(), Warn, "Failed to close %s after read", lastMessage); | |
| 380 } | |
| 381 } | |
| 382 } | 377 } |
| 383 } | 378 } |
| 384 | 379 |
| 385 /** | 380 /** |
| 386 * Access repository lock that covers non-store parts of the repository (dirstate, branches, etc - | 381 * Access repository lock that covers non-store parts of the repository (dirstate, branches, etc - |
