Mercurial > hg4j
diff src/org/tmatesoft/hg/core/HgFileRevision.java @ 444:b3b1db9301a2
Few comments that emerged while working on examples
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 15 May 2012 20:19:22 +0200 |
parents | 12f668401613 |
children | 5dcb4581c8ef |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/core/HgFileRevision.java Fri May 04 17:59:22 2012 +0200 +++ b/src/org/tmatesoft/hg/core/HgFileRevision.java Tue May 15 20:19:22 2012 +0200 @@ -78,11 +78,20 @@ } /** - * Executable or symbolic link, or <code>null</code> if regular file + * Extract flags of the file as recorded in the manifest for this file revision + * @return whether regular file, executable or a symbolic link * @throws HgRuntimeException subclass thereof to indicate issues with the library. <em>Runtime exception</em> */ public HgManifest.Flags getFileFlags() throws HgRuntimeException { if (flags == null) { + /* + * Note, for uses other than HgManifestCommand or HgChangesetFileSneaker, when no flags come through the cons, + * it's possible to face next shortcoming: + * Imagine csetA and csetB, with corresponding manifestA and manifestB, the file didn't change (revision/nodeid is the same) + * but flag of the file has changed (e.g. became executable). Since HgFileRevision doesn't keep reference to + * an actual manifest revision, but only file's, and it's likely the flags returned from this method would + * yield result as from manifestA (i.e. no flag change in manifestB ever noticed). + */ HgDataFile df = repo.getFileNode(path); int revIdx = df.getRevisionIndex(revision); flags = df.getFlags(revIdx);