(105,4,'2010-11-24 23:41:10','P',1,'couldn\'t it happen that we hide some problems here by ignoring the exception ?',NULL,1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/rebase/RebaseResultDialog.java','AAAL0n///04='),(71,4,'2010-11-24 23:41:10','P',1,'unnecessary blank line',NULL,1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/rebase/RebaseResultDialog.java','AAAL0n///08='),(71,46,'2010-11-25 09:20:40','P',1,'Done','AAAL0n///08=',1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/rebase/RebaseResultDialog.java','AAAL0n///0c='),(105,46,'2010-11-25 09:20:40','P',1,'Tthe whole purpose of this code is to render a diff so that the user gets some idea what the current commit would change, and they get an error message if that fails.','AAAL0n///04=',1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/rebase/RebaseResultDialog.java','AAAL0n///0Y='),(71,4,'2010-11-24 23:41:10','P',1,'style nit: we don\'t use braces around single line blocks',NULL,1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RebaseCurrentRefCommand.java','AAAL0n///00='),(93,46,'2010-11-25 09:20:40','P',1,'Done','AAAL0n///0s=',1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RebaseCurrentRefCommand.java','AAAL0n///0M='),(85,46,'2010-11-25 09:20:40','P',1,'Done','AAAL0n///0w=',1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RebaseCurrentRefCommand.java','AAAL0n///0Q='),(93,4,'2010-11-24 23:41:10','P',1,'unnecessary blank line',NULL,1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RebaseCurrentRefCommand.java','AAAL0n///0s='),(71,46,'2010-11-25 09:20:40','P',1,'Done','AAAL0n///00=',1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RebaseCurrentRefCommand.java','AAAL0n///0U=');
INSERT INTO `patch_comments` VALUES (85,4,'2010-11-24 23:41:10','P',1,'this should be marked as TODO',NULL,1942,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RebaseCurrentRefCommand.java','AAAL0n///0w='),(85,51,'2010-11-26 10:11:47','P',1,'I\'d prefer to not spoil the enum with a redundant COPIES, so I\'ve fixed it using StringUtils\' boolean translation.','AAAL0n///zY=',1948,1,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java','AAAL0n///wE='),(85,1,'2010-11-25 17:46:36','P',1,'We now set FALSE when diff.renames = yes or diff.renames = on.  That doesn\'t match C Git, does it?\n\nFortunately getEnum almost does what you want, as it honors yes/on as aliases for true and no/off as aliases for false.  So maybe redefine it this way:\n\n- add COPIES to RenameDetectionType\n- use rc.getEnum(\"diff\", null\", \"renames\", RenameDetectionType.values())\n- translate COPIES to always be COPY',NULL,1948,1,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java','AAAL0n///zY='),(86,51,'2010-11-29 16:17:28','P',1,'Done','AAAL0n///tY=',1948,2,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java','AAAL0n///qo='),(81,51,'2010-11-29 16:17:28','P',1,'Done. I\'m wondering if StringUtils.equalsIgnoreCase() should be null-safe?','AAAL0n///tc=',1948,2,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java','AAAL0n///qs='),(81,1,'2010-11-27 01:48:30','P',1,'Should we use StringUtils.equalsIgnoreCase here?',NULL,1948,2,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java','AAAL0n///tc='),(86,1,'2010-11-27 01:48:30','P',1,'This doesn\'t reject on null.  I would instead write:\n\n  if (renameBoolean == null)\n    throw new IllegalArgumentException(....);\n else if (renameBoolean)\n    renameDetectionType = RenameDetectionType.TRUE;\n else\n    renameDetectionType = RenameDetectionType.FALSE;',NULL,1948,2,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java','AAAL0n///tY='),(104,2,'2010-11-26 10:50:56','P',1,'This type of code screams to be in a utility method or available via some higher level API (org.eclipse.jgit.api).. for now this is OK.',NULL,1956,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareWithIndexActionHandler.java','AAAL0n///vY='),(15,5,'2010-11-25 23:30:39','P',1,'I agree, HistogramDiff should be our default. But since I already saw 3 diff algorithms (myers, patience, histogram) up to know I think its a good idea to to give the option to configure the algorithm.','AAAL0n///y4=',1957,1,'/COMMIT_MSG','AAAL0n///xk='),(15,1,'2010-11-25 18:00:12','P',1,'We should just be using HistogramDiff as our default algorithm now.  Its faster on source code files, and produces pretty decent results.  Its also simpler and easier to follow.\n\nThat said, I\'ll probably rewrite our MyersDiff implementation to be shorter and easier to understand.  But I need to find the time to do that.  :-)',NULL,1957,1,'/COMMIT_MSG','AAAL0n///y4='),(73,5,'2010-11-25 23:30:39','P',1,'Done','AAAL0n///zE=',1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffAlgorithm.java','AAAL0n///xg='),(73,1,'2010-11-25 18:00:12','P',1,'Nak.  This is now public, and mutable, and a singleton.\n\nChange the enum to be:\n\n  public enum SupportedAlgorithm {\n    MYERS, HISTOGRAM\n  }\n\n  public static DiffAlgorithm getAlgorithm(SupportedAlgorithm alg) {\n    switch(alg) {\n    case MYERS:\n      return MyersDiff.INSTANCE;\n    case HISTOGRAM:\n      return new HistogramDiff();\n    }\n  }',NULL,1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffAlgorithm.java','AAAL0n///zE='),(60,5,'2010-11-25 23:30:39','P',1,'be patient. Thats in the next proposal 1958. This proposal was meant just to make the diff algorithm configurable. 1958 switches the default.','AAAL0n///y0=',1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java','AAAL0n///xc='),(273,5,'2010-11-25 23:30:39','P',0,'Done','AAAL0n///zA=',1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java','AAAL0n///xU='),(63,5,'2010-11-25 23:30:39','P',1,'Done','AAAL0n///y8=',1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java','AAAL0n///xY='),(60,1,'2010-11-25 18:00:12','P',1,'I would just use HistogramDiff as the default these days.',NULL,1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java','AAAL0n///y0='),(63,1,'2010-11-25 18:00:12','P',1,'Should this be final?',NULL,1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java','AAAL0n///y8='),(273,1,'2010-11-25 18:00:12','P',0,'Why does this need to be an instance method now?  static methods are faster to dispatch to, because \"this\" doesn\'t need to be pushed onto the stack.',NULL,1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java','AAAL0n///zA='),(149,5,'2010-11-25 23:30:39','P',1,'Done','AAAL0n///yw=',1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL0n///xQ='),(149,1,'2010-11-25 18:00:12','P',1,'Should we also honor this variable in DiffFormatter?',NULL,1957,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL0n///yw='),(61,5,'2010-11-25 23:44:50','P',1,'Done','AAAL0n///yo=',1958,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java','AAAL0n///xE='),(61,1,'2010-11-25 18:01:55','P',1,'Comment no longer matches the code.  :-)',NULL,1958,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java','AAAL0n///yo='),(13,44,'2010-11-26 17:12:00','P',1,'Done','AAAL0n///uw=',1961,2,'org.eclipse.egit.core/META-INF/MANIFEST.MF','AAAL0n///uQ='),(13,4,'2010-11-26 16:38:55','P',1,'this should be a reasonable version range (lower boundary must be available in Galileo), use \"[1.0.0,2.0.0)\"',NULL,1961,2,'org.eclipse.egit.core/META-INF/MANIFEST.MF','AAAL0n///uw='),(17,44,'2010-11-26 17:12:00','P',1,'Done','AAAL0n///us=',1961,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitCredentials.java','AAAL0n///uI='),(15,44,'2010-11-26 17:12:00','P',1,'Done','AAAL0n///uo=',1961,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitCredentials.java','AAAL0n///uM='),(15,4,'2010-11-26 16:38:55','P',1,'maybe we find a more generic name here like \"UserPasswordCredentials\"',NULL,1961,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitCredentials.java','AAAL0n///uo='),(17,4,'2010-11-26 16:38:55','P',1,'unnecessary blank line',NULL,1961,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitCredentials.java','AAAL0n///us='),(28,44,'2010-11-26 17:12:00','P',1,'Done','AAAL0n///uk=',1961,2,'org.eclipse.egit.ui/META-INF/MANIFEST.MF','AAAL0n///uE='),(28,4,'2010-11-26 16:38:55','P',1,'replace with [1.0.0,2.0.0) to allow platform version range Galileo ... Indigo',NULL,1961,2,'org.eclipse.egit.ui/META-INF/MANIFEST.MF','AAAL0n///uk='),(244,44,'2010-11-26 17:12:00','P',1,'Done','AAAL0n///ug=',1961,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/SourceBranchPage.java','AAAL0n///uA='),(244,4,'2010-11-26 16:38:55','P',1,'we don\'t use braces around single line blocks',NULL,1961,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/SourceBranchPage.java','AAAL0n///ug='),(3,4,'2010-11-28 23:05:47','P',1,'add a blank line after the copyright statements to match our license header template',NULL,1961,3,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/securestorage/EGitSecureStoreTest.java','AAAL0n///sE='),(3,4,'2010-11-28 23:05:47','P',1,'add a blank line after the copyright statements to match our license header template',NULL,1961,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitSecureStore.java','AAAL0n///sA='),(3,4,'2010-11-28 23:05:47','P',1,'add a blank line after the copyright statements to match our license header template',NULL,1961,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/UserPasswordCredentials.java','AAAL0n///r8='),(3,4,'2010-11-28 23:05:47','P',1,'add a blank line after the copyright statements to match our license header template',NULL,1961,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/EGitCredentialsProvider.java','AAAL0n///r4='),(27,4,'2010-11-28 23:05:47','P',1,'better: s/sent/shown/',NULL,1961,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/EGitCredentialsProvider.java','AAAL0n///ro='),(3,4,'2010-11-28 23:05:47','P',1,'add a blank line after the copyright statements to match our license header template',NULL,1961,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginDialog.java','AAAL0n///r0='),(115,4,'2010-11-29 23:04:37','P',1,'unnecessary blank line',NULL,1961,4,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/securestorage/EGitSecureStoreTest.java','AAAL0n///qE='),(3,4,'2010-11-29 23:04:37','P',1,'missing blank line',NULL,1961,4,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/securestorage/EGitSecureStoreTest.java','AAAL0n///qI='),(3,4,'2010-11-29 23:04:37','P',1,'missing blank line',NULL,1961,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitSecureStore.java','AAAL0n///qA='),(3,4,'2010-11-29 23:04:37','P',1,'missing blank line',NULL,1961,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/UserPasswordCredentials.java','AAAL0n///p8='),(1322,4,'2010-11-29 23:04:37','P',1,'trailing whitespace',NULL,1961,4,'org.eclipse.egit.ui/plugin.xml','AAAL0n///p0='),(1318,4,'2010-11-29 23:04:37','P',1,'trailing whitespace',NULL,1961,4,'org.eclipse.egit.ui/plugin.xml','AAAL0n///p4='),(1703,4,'2010-11-29 23:04:37','P',1,'trailing whitespace',NULL,1961,4,'org.eclipse.egit.ui/plugin.xml','AAAL0n///pw='),(27,4,'2010-11-29 23:04:37','P',1,'s/sent/shown/',NULL,1961,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/EGitCredentialsProvider.java','AAAL0n///po='),(3,4,'2010-11-29 23:04:37','P',1,'missing blank line',NULL,1961,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/EGitCredentialsProvider.java','AAAL0n///ps='),(64,4,'2010-11-29 23:04:37','P',1,'we don\'t use braces around single line blocks',NULL,1961,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginDialog.java','AAAL0n///pg='),(3,4,'2010-11-29 23:04:37','P',1,'missing blank line',NULL,1961,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginDialog.java','AAAL0n///pk='),(45,4,'2010-11-29 23:04:37','P',1,'The key for the externalized text has Push in its name, since this command is not related to push this key should be renamed to \n\"ChangeCredentialsCommand_writingToSecureStoreFailed\"',NULL,1961,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/ChangeCredentialsCommand.java','AAAL0n///o4='),(25,4,'2010-11-29 23:04:37','P',1,'unnecessary blank line',NULL,1961,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/ChangeCredentialsCommand.java','AAAL0n///pc='),(194,6,'2010-11-30 10:30:38','P',1,'Done','AAAL0n///ok=',1968,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL0n///n4='),(68,6,'2010-11-30 10:30:38','P',1,'Done','AAAL0n///os=',1968,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL0n///n8='),(289,6,'2010-11-30 10:30:38','P',1,'Thanks for pointing that out. I did the second thing you proposed and did first fix the existing methods.','AAAL0n///oo=',1968,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL0n///nw='),(194,1,'2010-11-29 23:18:40','P',1,'Style-nit: I would insert a blank line before this line.',NULL,1968,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL0n///ok='),(289,1,'2010-11-29 23:18:40','P',1,'None of these methods should export HashSet.  They should be exporting Set<String> instead in case we change our internal representation to be something else, e.g a TreeSet, or a custom Set implementation that uses a smaller storage and is easier to construct given the fact that we iterate names in path-order.\n\nYou can add it as HashSet<String> here if you then immediately follow up with a change that fixes all of these methods to return Set<String>.  (Or please do the reverse, insert a new commit that fixes the existing methods to return Set<String> and change this commit to return Set<String>.)',NULL,1968,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL0n///oo='),(68,1,'2010-11-29 23:18:40','P',1,'I would prefer to not reformat this HTML list, its harder to read in the source.\n\nThe reason its not formatting right is because its invalid HTML.  If you change the list to be a proper list type, the Javadoc formatter will do the right thing:\n\n  * <ul>\n  * <li>added files</li>\n  * <li>changed files</li>\n  * <li>removed files</li>\n  * </ul>',NULL,1968,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL0n///os='),(108,1,'2010-11-30 18:45:47','P',1,'The others are declared Set<String>, but this is declared HashSet<String>.  Can we use the more generic Set<String> as the field type?',NULL,1968,3,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL0n///mo='),(473,4,'2010-12-01 09:55:25','P',1,'typo: s/Unchaged/unchanged/',NULL,1969,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL0n///lo='),(86,44,'2010-12-01 09:20:43','P',1,'Changed title to \"Change stored Credentials\" and removed checkbox.','AAAL0n///m4=',1973,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginDialog.java','AAAL0n///l8='),(86,4,'2010-11-30 16:54:36','P',1,'Why is the checkbox disabled when changing credentials ?\nMaybe a user wants to change credentials just for a single operation ...',NULL,1973,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginDialog.java','AAAL0n///m4='),(68,44,'2010-12-01 09:20:43','P',1,'Done','AAAL0n///nI=',1973,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginService.java','AAAL0n///l0='),(22,44,'2010-12-01 09:20:43','P',1,'Done','AAAL0n///nM=',1973,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginService.java','AAAL0n///l4='),(68,4,'2010-11-30 16:54:36','P',1,'unnecessary blank line',NULL,1973,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginService.java','AAAL0n///nI='),(22,4,'2010-11-30 16:54:36','P',1,'missing javadoc',NULL,1973,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginService.java','AAAL0n///nM='),(7,4,'2010-12-01 10:22:56','P',1,'typo: s/Authentification/Authentication/',NULL,1973,2,'/COMMIT_MSG','AAAL0n///lI='),(892,4,'2010-12-01 10:22:56','P',1,'should be lower case s/Credentials/credentials/',NULL,1973,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL0n///lM='),(7,2,'2010-12-01 15:22:12','P',1,'Authentication? Authentification sounds German :)',NULL,1973,4,'/COMMIT_MSG','AAAL0n///j8='),(75,2,'2010-12-01 15:22:12','P',1,'We should look at creating a EGitCoreActivator and EGitUIActivator or something like EGitCore and EGitUI to simplify access to the activators.',NULL,1973,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/credentials/LoginService.java','AAAL0n///j4='),(239,46,'2010-12-01 14:33:43','P',1,'Good hint with the AddCommand, that\'s in. As for removing track(), I\'m reluctant as the use of track() and addToIndes() is wildly mixed all over the tests, and the parameter is File here and IFile there, so we need some bigger refactoring here.','AAAL0n///lU=',1974,1,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java','AAAL0n///kM='),(239,4,'2010-12-01 10:06:57','P',1,'I think we should clean that up in a different way: \n\nAFAIK we do no longer have a difference between \"add to index\" and \"track\", so I think we should delete the track() here and replace it by addToIndex().\n\nIn addition we could use the jgit AddCommand to heavily simplify this class.',NULL,1974,1,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestRepository.java','AAAL0n///lU='),(324,2,'2010-12-03 02:19:09','P',1,'constant somewhere?',NULL,1984,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AAAL0n///dI='),(328,2,'2010-12-03 02:19:09','P',1,'we should probably refactor these into private static String\'s somewhere.',NULL,1984,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AAAL0n///dM='),(1522,4,'2010-12-01 15:51:22','d',1,'trailing whitespace',NULL,1987,1,'org.eclipse.egit.ui/plugin.xml','AAAL0n///jU='),(10,46,'2010-12-08 07:36:18','P',1,'Done','AAAL03///8Y=',1987,2,'/COMMIT_MSG','AAAL03///6w='),(10,4,'2010-12-08 00:40:37','P',1,'typo s/swith/switch/',NULL,1987,2,'/COMMIT_MSG','AAAL03///8Y='),(1566,46,'2010-12-08 07:36:18','P',1,'Done','AAAL03///8c=',1987,2,'org.eclipse.egit.ui/plugin.xml','AAAL03///6s='),(1566,4,'2010-12-08 00:40:37','P',1,'trailing whitespace',NULL,1987,2,'org.eclipse.egit.ui/plugin.xml','AAAL03///8c='),(67,4,'2010-12-01 15:46:37','P',1,'I think this should not be static.\n\nHow should that work in a multi-threaded environment like e.g. Gerrit which is hosting many repositories ?',NULL,1989,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/GitCommand.java','AAAL0n///jc='),(566,4,'2010-12-01 21:16:12','P',1,'why deferring string externalization ?',NULL,1990,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/RepositorySelectionPage.java','AAAL0n///jA='),(22,4,'2010-12-01 21:16:12','P',1,'unnecessary blank line',NULL,1990,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/SecureStoreUtils.java','AAAL0n///jE='),(7,4,'2010-12-02 22:47:22','P',1,'style nit: commit message header is too wide [1]\n\n[1] http://wiki.eclipse.org/EGit/Contributor_Guide#Commit_message_guidelines',NULL,1999,3,'/COMMIT_MSG','AAAL0n///d4='),(10,46,'2010-12-03 08:02:54','P',1,'Done','AAAL0n///e8=',2005,1,'/COMMIT_MSG','AAAL0n///c4='),(10,63,'2010-12-02 19:18:30','P',1,'Why is this sentence cut off in half? I see that the bug number is listed at the bottom (per our recommended guidelines) but this half sentence looks quite weird to me.',NULL,2005,1,'/COMMIT_MSG','AAAL0n///e8='),(137,46,'2010-12-03 08:02:54','P',0,'Done','AAAL0n///dk=',2005,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/DiscardChangesOperation.java','AAAL0n///c0='),(137,4,'2010-12-03 00:06:48','P',0,'by removing the code above you end up with two identical statements in a row, replace that by monitor.worked(2) ?',NULL,2005,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/DiscardChangesOperation.java','AAAL0n///dk='),(77,1,'2010-12-03 17:24:12','P',1,'If bare is false, I wonder if we shouldn\'t append \"/\"+Constants.DOT_GIT.',NULL,2014,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///aA='),(99,1,'2010-12-03 17:24:12','P',1,'IMHO this should be setDirectory() not setDirectoryName().',NULL,2014,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///aE='),(59,1,'2010-12-03 17:24:12','P',1,'IMHO, this should be created by a static part of Git:\n\n  class Git {\n    public static InitCommand init() {\n      return new InitCommand();\n    }\n  }\n\nThen the usage is something like:\n\n  Git git = Git.init().setDirectory(\"/path/to/dir\").call();\n\nClone would be similar.',NULL,2014,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///aI='),(71,1,'2010-12-03 17:24:12','P',1,'Instead of returning Repository, maybe we should return a Git.  That way the Git object is ready to be used by the caller.',NULL,2014,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///aM='),(80,1,'2010-12-03 17:24:12','P',1,'If directory is null, we might want to use GIT_DIR rather than \".\".  So maybe instead:\n\n  builder.readEnvironment();\n  if (directory != null) {\n    File d = new File(directory);\n    if (!bare)\n      d = new File(d, Constants.DOT_GIT);\n    builder.setGitDir(d);\n  } else if (builder.getGitDir() == null) {\n    File d = new File(\".\");\n    if (!bare)\n      d = new File(d, Constants.DOT_GIT);\n    builder.setGitDir(d);\n  }',NULL,2014,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///aQ='),(85,1,'2010-12-03 17:24:12','P',1,'You still need to do:\n\n  repository.create(bare);\n\nto create the repository on disk.',NULL,2014,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///aU='),(54,1,'2010-12-03 17:24:12','P',1,'As far as I know, almost nobody reinitializes a repository.  Its an ancient arcane concept.',NULL,2014,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///Z8='),(62,4,'2010-12-03 21:24:48','P',1,'debug this single test case and stop here, the resulting file system structure has the git repo structure twice, this looks weird,\nI think something is wrong here :\n\ntest1291411370681_0\n- .git\n  - branches\n  - config\n  - HEAD\n  - logs\n  - objects\n  - refs\n- test1\n  - branches\n  - config\n  - HEAD\n  - logs\n  - objects\n  - refs',NULL,2014,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/InitCommandTest.java','AAAL0n///Zk='),(76,4,'2010-12-03 21:24:48','P',1,'debug this single test case and stop here, the resulting file system structure has the git repo structure twice, this looks weird,\nI think something is wrong here :\n\ntest1291410985097_0\n- .git\n  - branches\n  - config\n  - HEAD\n  - logs\n  - objects\n  - refs\n- test2\n  - branches\n  - config\n  - HEAD\n  - logs\n  - objects\n  - refs',NULL,2014,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/InitCommandTest.java','AAAL0n///Zo='),(294,1,'2010-12-03 21:30:49','P',1,'Style-nit: Static methods should appear at the start of the class, before instance members.',NULL,2014,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL0n///Zc='),(105,1,'2010-12-03 21:30:49','P',1,'Why is directory a string and not a java.io.File ?',NULL,2014,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///ZQ='),(88,1,'2010-12-03 21:30:49','P',1,'Why are we running findGitDir()?  It should have been explicitly set above.',NULL,2014,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///ZU='),(59,1,'2010-12-03 21:30:49','P',1,'I think we should still use Callable:\n\n  class InitCommand implements Callable<Git>',NULL,2014,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL0n///ZY='),(294,1,'2010-12-06 23:58:49','P',1,'Style-nit: Should be \"public static\".  And should be declared *before* the constructor of the class, not in the middle of the instance methods.',NULL,2014,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL0n///R8='),(11,8,'2010-12-04 08:16:56','P',1,'This gives the impression that ref type is the first sort key, while in the code commit time is,\n\nThis sort order is probably better handled as an UI issue, but this is a good default.',NULL,2032,2,'/COMMIT_MSG','AAAL0n///Yc='),(183,2,'2010-12-05 15:50:05','P',1,'Do we really want these as inner classes?',NULL,2036,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL0n///XA='),(11,1,'2010-12-05 23:25:30','P',1,'I\'m not sure how this refactoring really helps us avoid checking a blob.  I think its a massive amount of over-engineering for a simple problem.\n\nWe don\'t want to materialize the entire content of a blob in order to check it, because there isn\'t a reason to check the blob, we can\'t verify anything about it except compute its SHA-1... which IndexPack already has to do in order to build the index file.\n\nGit usually doesn\'t create new object types.  In 5 years we are still using the original 4 object types that Linus Torvalds defined.  We could just as easily add a test to IndexPack that says something like:\n\n  if (type != OBJ_BLOB)\n    check(data);\n\nThat is a much simpler change.',NULL,2039,1,'/COMMIT_MSG','AAAL0n///V8='),(11,102,'2010-12-06 00:03:20','P',1,'Thanks for the review  - I guess you\'re right, in that it\'s definite over-engineering with regard to solving the problem I actually want to solve (the memory consumption in IndexPack).\n\nI think I was a bit drawn into doing this refactor because I have a personal preference for smaller classes, and when I see three methods all doing the same type of action I get a pavlovian desire to define an interface - it\'s something my therapist and I are working on.\n\nIn any case, you\'re right, it\'s not necessary for the end result I want, so I\'ll abandon this change.','AAAL0n///V8=',2039,1,'/COMMIT_MSG','AAAL0n///Vc='),(7,1,'2010-12-05 23:25:30','P',1,'Style-nit: Commit messages shouldn\'t be longer than 70 characters per line, otherwise they don\'t format well in traditional Git tools like gitk, git log, etc.',NULL,2039,1,'/COMMIT_MSG','AAAL0n///WA='),(106,1,'2010-12-05 23:25:30','P',1,'Given that the values are between 1 and 4, an array might be a better choice here.  Elsewhere, e.g. in PackWriter, we use an array.',NULL,2039,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectChecker.java','AAAL0n///Wc='),(110,1,'2010-12-05 23:25:30','P',1,'Style-nit: We try to line-wrap lines at 80 characters.  Sure terminals are wider, but we often view JGit code side-by-side during code reviews, or within IDEs with a ton of other widgets along the left and right sides of the code.  So keeping a narrow text width makes it easier to still read everything.',NULL,2039,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectChecker.java','AAAL0n///WM='),(133,1,'2010-12-05 23:25:30','P',1,'We require Javadoc for public declarations.',NULL,2039,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectChecker.java','AAAL0n///WQ='),(128,1,'2010-12-05 23:25:30','P',1,'Style-nit: We put spaces around operators, and we omit unnecessary curly braces:\n\n  if (objectChecker != null)\n    objectChecker.check(raw);',NULL,2039,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectChecker.java','AAAL0n///WU='),(107,1,'2010-12-05 23:25:30','P',1,'Style-nit: We put spaces between method arguments.',NULL,2039,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectChecker.java','AAAL0n///WY='),(1,1,'2010-12-05 23:25:30','P',1,'Style-nit:  All file headers must contain our BSD derived license text.',NULL,2039,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/objectcheckers/CommitChecker.java','AAAL0n///WI='),(5,1,'2010-12-05 23:25:30','P',1,'Style-nit: We don\'t use the I prefix for interfaces.',NULL,2039,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/objectcheckers/IObjectChecker.java','AAAL0n///WE='),(842,1,'2010-12-07 16:38:11','P',1,'Yes, we need a streaming byte-for-byte compare.  That is easier if you change the inflate routine to provide an InputStream to the caller, instead of accepting an OutputStream that it copies onto.','AAAL0n///Uc=',2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03////A='),(479,1,'2010-12-07 16:38:11','P',1,'OK, I agree that your partial fix is stll at least of some value to us.  So lets fix this whole object case for the non-delta compressed big blobs, and then later work on the delta chain problem.','AAAL0n///Ug=',2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03////E='),(967,1,'2010-12-07 16:38:11','P',1,'I think things will be easier if inflate is defined as:\n\n  private InputStream inflate(final Source src, final long inflatedSize)\n\nWhere it returns an InputStream that the caller can read to get the inflated data from.  For performance reasons we should try to use a single InputStream object, just like we use a single Inflater, and just reset it along with the Inflater when the method is invoked.\n\nThis way above in inflateAndReturn we can use IO.readFully() to read from the InputStream directly into the byte[] we have allocated and will return to the caller.  This reduces the number of allocations and copies involved.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///+8='),(957,1,'2010-12-06 00:10:03','P',1,'This comment is no longer relevant since the argument it applied to (the boolean keep) was removed.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///U0='),(963,1,'2010-12-06 00:10:03','P',1,'This comment is no longer relevant, since the argument it applied to (the boolean keep) was removed.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///U4='),(964,1,'2010-12-06 00:10:03','P',1,'This creates a copy of the data, which means we are copying the data twice.  Since this code is part of the inner loop of IndexPack I would like to avoid that copying by properly allocating the output buffer and writing into it directly.\n\nThat might mean a variant of ByteArrayOutputStream has to be written and put into jgit.util.io.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///U8='),(842,102,'2010-12-06 00:58:51','P',1,'I need to introduce a streaming byte-for-byte comparison, I guess.','AAAL0n///Wk=',2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///Uc='),(479,102,'2010-12-06 00:58:51','P',1,'Yup, it\'s definitely only a partial fix :-)  I know I\'m only fixing what\'s easy - not what\'s Hard.\n\nHowever there\'s at least one problem-case where what\'s /easy/ is also what is *beneficial* , and that\'s in the case of the Unwise-Big-Blob-Committer:\n\nThe Unwise-Big-Blob-Committer unwisely commits a 500MB file into their repo - perhaps they regret it later, but they just delete it in a later commit, and move on - they\'re unlikely to clean their repository using rebasing or whatever. If the 500MB file compresses well the pack-file won\'t even make a dint in the network bandwidth when cloning.\n\nThe 500MB file is never part of a delta because it\'s a random dumb file - no-one ever committed a file even remotely like it. But it\'s still in the pack file, it still verified by JGit\'s IndexPack.whole() method when the pack file is loaded, and still causes an OutOfMemoryException.\n\n\nFixing the Hard thing here- resolveDeltas - fixes the problem for people who actually *deliberately* use large files in their repos. Fixing the \'easy\' thing - object checking - fixes the problem for people who once *accidentally* checked a dumb big file into their project. I think the first scenario is pretty rare. The second is more common. At the very least, it would be nice to help people who have been a victim of the UBBC :)','AAAL0n///Us=',2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///Ug='),(479,1,'2010-12-06 00:10:03','P',1,'The resolveDeltas part of IndexPack is the most memory consuming part, and you didn\'t address it to use streaming techniques.  So thus far your change is only a partial fix to the problem.  :-)\n\nFWIW, this is the harder part to fix.  The base object is needed during the entire chain processing.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///Us='),(729,1,'2010-12-06 00:10:03','P',0,'Like Math.min, please don\'t make unrelated changes.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///Uw='),(968,1,'2010-12-06 00:10:03','P',1,'Style-nit: We use tabs for indentation, not spaces.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///VA='),(681,1,'2010-12-06 00:10:03','P',0,'Style-nit: Please don\'t make unrelated changes if you can avoid it.  There isn\'t a good reason to switch Math.min() to min() while also trying to fix the code to not materialize all data in a byte[].\n\nIf this change is worthwhile (and it may be for readability reasons), please make it a separate commit.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///Vg='),(977,1,'2010-12-06 00:10:03','P',1,'Style-nit: We put spaces between arguments.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///VI='),(48,1,'2010-12-06 00:10:03','P',1,'Style-nit: Please don\'t re-order imports.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///Vk='),(976,1,'2010-12-06 00:10:03','P',1,'There is no need to compute the number of bytes to inflate, the 3rd argument here is the maximum number of bytes that outBuffer can receive.  So you can simplify your code to be:\n\n  int r = inf.inflate(outBuffer, 0, outBuffer.length);',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///VM='),(71,1,'2010-12-06 00:10:03','P',1,'Style-nit: Static imports go before class imports.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///Vo='),(989,1,'2010-12-06 00:10:03','P',1,'This is an unnecessary conversion of tabs to spaces.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///VQ='),(59,1,'2010-12-06 00:10:03','P',1,'Style-nit: We never import *.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///Vs='),(1009,1,'2010-12-06 00:10:03','P',1,'This is an unnecessary conversion of tabs to spaces.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///VU='),(842,1,'2010-12-05 23:16:02','P',1,'We have to continue to do the existing object check, even for blobs.  This is a safety measure to prevent a SHA-1 collision from corrupting the local repository.\n\nNormally when an object is added to a repository we compute the SHA-1 for it, then check to see if the object exists.  If it does, we don\'t create the new object, we instead rely upon the existing content.  This prevents an object that has the same SHA-1 but different content from entering the repository, so that it at least continues to return older content as expected.\n\nHowever, here we are keeping the pack file as-is in the repository.  That means we may wind up with another copy of an already existing object.  In order to ensure we will continue to return the same content, we need to compare byte-for-byte.\n\nIts slow, yes.  But its a safety feature that should never trip (in theory), and is one that we have to keep.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL0n///Wk='),(8,1,'2010-12-06 00:10:03','P',1,'This could be a singleton, so the constructor should be private.\n\nStyle-nit: Spaces around =.',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/io/NullOutputStream.java','AAAL0n///V0='),(11,1,'2010-12-06 00:10:03','P',1,'Style-nit: We put the closing curly brace on its own line:\n\n  @Override\n  public void write(int i) throws IOException {\n    // no-op\n  }',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/io/NullOutputStream.java','AAAL0n///Vw='),(1,4,'2010-12-05 13:11:46','d',1,'missing license header',NULL,2040,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/io/NullOutputStream.java','AAAL0n///YA='),(933,1,'2010-12-08 01:05:12','P',1,'Done','AAAL03///90=',2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///78='),(246,1,'2010-12-08 01:19:36','P',1,'Ok, now I understand your point.\n\nEven on a non-empty repository, a large percentage of the blob objects received will be new and streaming would be efficient, as they don\'t need to access the data twice.  If however a blob already exists, we already have to do disk IO to load the existing blob.  Doing another disk IO to load back part of this pack is bad, but we\'re already suffering disk IO to load the existing blob.\n\nMaybe its OK to just always stream blobs and take a double IO hit anytime this blob already exists.','AAAL03///7o=',2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///7g='),(246,102,'2010-12-08 01:14:07','P',1,'I\'m trying to get at the fact that blob-streaming should be *faster* pretty much as soon as the blob size rises above BUFFER_SIZE, as blob-streaming doesn\'t do the byte array allocation (of  \'dst\') that occurs in inflateAndReturn().\n\nThe only reason not to do blob streaming is that you might later have to do disk IO if you\'re unlucky. If your repository is empty, you\'ll never be unlucky.','AAAL03///8E=',2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///7o='),(914,1,'2010-12-08 01:05:12','P',1,'Done, called \"doDeferredCheckBlobs()\".','AAAL03///94=',2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///8A='),(246,1,'2010-12-08 01:05:12','P',1,'I don\'t think this special case for empty local repository is useful.  Further down we only add a blob to deferredCheckBlobs if the blob already exists in the local repository.  If the repository is empty, that check is really fast (searching an empty hash map is constant time) and it returns false, so we never put the blob into deferredCheckBlobs.','AAAL03///8Q=',2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///8E='),(219,1,'2010-12-08 01:05:12','P',1,'Done','AAAL03///98=',2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///8I='),(246,102,'2010-12-08 00:48:33','P',1,'Possible optimization: It struck me that if the repo is empty (ie. you are cloning), you could set this to a small multiple of BUFFER_SIZE - you know that you\'ll never have to go back and do a deferred check for a known blob, because you don\'t have any. Consequently you get the benefit of not having to allocate an array for any blob you encounter :)',NULL,2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///8Q='),(933,102,'2010-12-08 00:48:33','P',1,'This switch statement looks unnecessary to me - if the value of \'type\' is not BLOB we should throw an exception straight away.',NULL,2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///90='),(914,102,'2010-12-08 00:48:33','P',1,'\'doDeferredBlobChecks()\' ?',NULL,2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///94='),(219,102,'2010-12-08 00:48:33','P',1,'Perhaps name this \'deferredCheckBlobs\' - as all other types should&will get checked immediately?',NULL,2040,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL03///98='),(72,1,'2010-12-07 00:00:18','P',1,'This will NPE unless the user passed --git-dir on the command line to us.  Which means this fails:\n\n  mkdir foo\n  cd foo\n  jgit init\n\nYou need to instead do:\n\n  Git git = command.call();\n  out.println(.... git.getRepository().getDirectory().getAbsolutePath());',NULL,2048,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Init.java','AAAL0n///R0='),(11,4,'2010-12-09 20:51:09','P',0,'how is this change related to this commit\'s intent ?',NULL,2051,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/internal/Utils.java','AAAL1H///8w='),(64,8,'2010-12-11 18:01:26','P',1,'The inversion of logic is not mentioned in the commit message.',NULL,2051,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/GitResourceVariantTreeSubscriber.java','AAAL1X////A='),(65,8,'2010-12-11 18:01:26','P',1,'Use roots.clone() instead, here and elsewhere',NULL,2051,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/GitResourceVariantTreeSubscriber.java','AAAL1X///+8='),(11,8,'2010-12-11 18:01:26','P',1,'Let this utility remain internal. The move is not even mentioned in the commit message. This should be a separate commit if done at all.',NULL,2051,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/Utils.java','AAAL1X////I='),(41,8,'2010-12-11 18:01:26','P',1,'A simple clone works fine. You do not need this method.',NULL,2051,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/Utils.java','AAAL1X///+4='),(152,1,'2010-12-07 00:08:17','P',1,'Don\'t we also have to somehow set the upstream branch?\n\nClone works by looking for the advertised remote branch whose SHA-1 is the same as the advertised remote\'s HEAD branch.  The first such branch with the same SHA-1 is used as the name for the local branch, rather than assuming the default of \"master\".\n\nIf no branches exist in the remote, then yes, we assume master.  Otherwise its based on what HEAD was also named.',NULL,2053,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java','AAAL0n///Rc='),(141,1,'2010-12-07 00:08:17','P',1,'This shouldn\'t be necessary as its inherited from the configuration.',NULL,2053,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java','AAAL0n///Rg='),(193,1,'2010-12-07 00:08:17','P',1,'This is the name of the remote.  By default its \"origin\", but could be something else like \"eclipse\" or \"gerrit\".',NULL,2053,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java','AAAL0n///Rk='),(161,1,'2010-12-07 00:08:17','P',1,'Why is this String and not URIish?',NULL,2053,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java','AAAL0n///Ro='),(196,4,'2011-01-31 22:54:37','P',1,'better call this setRemote ?',NULL,2053,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java','AAAL2n//+5o='),(307,1,'2010-12-07 00:08:17','P',1,'Style-nits:  \"public static\".\n\nStatic methods should go before the class constructor.\n\nWhy cloneRepository()?  Why not clone()?',NULL,2053,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL0n///Rs='),(91,4,'2011-01-31 22:31:52','P',1,'Shawn mentioned he would prefer \"clone()\" instead of \"cloneRepository()\" ...',NULL,2053,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL2n//+5c='),(97,4,'2011-01-31 22:31:52','P',1,'style nit: trailing whitespace',NULL,2053,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL2n//+5g='),(84,4,'2011-01-31 22:31:52','P',1,'style nit: trailing whitespace',NULL,2053,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL2n//+5k='),(127,4,'2010-12-08 00:16:17','P',1,'thanks for this tip, used that as starting point for next patchset','AAAL0n///RE=',2054,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL03///9U='),(61,4,'2010-12-08 00:16:17','P',1,'Done','AAAL0n///RU=',2054,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL03///9Y='),(79,4,'2010-12-08 00:16:17','P',1,'Done','AAAL0n///RQ=',2054,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL0n///Qg='),(127,1,'2010-12-07 00:21:25','P',1,'I wonder if we can\'t have a single implementation of the whole class:\n\n  public static final int NONE = 0;\n  public static final int RECURSIVE = 1;\n  public static final int RETRY = 2;\n\n  public static void delete(File f) {\n    delete(f, NONE);\n  }\n\n  public static void delete(File f, int options) {\n    if ((options & RECURSIVE) != 0 && f.isDirectory()) {\n      final File[] items = f.listFiles();\n      if (items != null) {\n        for (File c : items)\n          delete(c, options);\n      }\n    }\n\n    if (!f.delete() && (options & RETRY) != 0 && f.exists()) {\n      for (int i = 1; i < 10; i++) {\n        try {\n          Thread.sleep(100);\n        } catch (InterruptedException e) {\n          throw new InterruptedIOException();\n        }\n\n        if (f.delete())\n          return;\n      }\n    }\n\n    throw new IOException();\n  }',NULL,2054,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL0n///RE='),(99,1,'2010-12-07 00:21:25','P',1,'deleteRepeated() sounds like we keep deleting the file to ensure its really removed.  deleteOrRetry() seems to be better to me.',NULL,2054,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL0n///RI='),(92,1,'2010-12-07 00:21:25','P',1,'I don\'t think we should document the exact number of times in our public Javadoc.  Just saying its retried several times before giving up and throwing an exception should be sufficient.',NULL,2054,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL0n///RM='),(79,1,'2010-12-07 00:21:25','P',1,'Why does this method pass silently when d does not exist, but delete(f) above fails?',NULL,2054,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL0n///RQ='),(61,1,'2010-12-07 00:21:25','P',1,'We should document this is thrown if {@code f} did not exist when the method was called.\n\nThis can therefore cause IOExceptions during race conditions when multiple concurrent threads all try to delete the same file.  If the caller doesn\'t care, they need to be careful about using this method.',NULL,2054,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL0n///RU='),(658,1,'2010-12-07 00:27:15','P',1,'It might be OK for a missing file to fail to delete here.  It depends on how the repository was constructed during a test as to whether or not a pack will contain an object that should be removed or not.',NULL,2055,1,'org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/TestRepository.java','AAAL0n///Q8='),(132,1,'2010-12-07 00:27:15','P',1,'Why FileUtils.delete() here, but assertTrue() in other JUnit tests?',NULL,2055,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/ignore/IgnoreNodeTest.java','AAAL0n///Q4='),(14,8,'2010-12-12 09:26:58','P',1,'Gerrit cannit find this id. Will Gerrit be able to handle a note\nwith a correction?',NULL,2056,5,'/COMMIT_MSG','AAAL1X///9s='),(153,1,'2010-12-07 17:54:46','P',1,'Instead of hard-coding 8, you should take an ObjectReader and use its abbreviate method to get the short string, in case you need more than 8 digits to disambiguate an object.\n\nOf course that requires doing disk IO, so it might not be a good idea within the event thread.',NULL,2061,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitCombo.java','AAAL03///+U='),(188,1,'2010-12-08 01:36:25','P',1,'We also should do this in DiffFormatter, when a WorkingTreeIterator and a DirCacheIterator are both invovled in the diff with ANY_DIFF.',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL03///7E='),(133,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///5g=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///40='),(101,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///7Q=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///44='),(77,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///7M=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///48='),(115,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///7U=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///4s='),(123,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///5k=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///4w='),(60,100,'2010-12-08 09:58:12','P',1,'style-nit: content ids',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///50='),(68,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///5o=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///5A='),(64,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///5s=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///5E='),(133,100,'2010-12-08 09:58:12','P',1,'can be changed to:\r\n\r\nreturn work.isModified...',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///5g='),(60,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///50=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///5I='),(123,100,'2010-12-08 09:58:12','P',1,'wm can also be declared as final',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///5k='),(68,100,'2010-12-08 09:58:12','P',1,'style-nit: replace DirCache with index (?)',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///5o='),(64,100,'2010-12-08 09:58:12','P',1,'style-nit: content ids',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///5s='),(127,1,'2010-12-08 01:36:25','P',1,'I think we can reach this point for a directory when TreeWalk.isRecursive() is false and all of the trees are equal above.\n\nWhen that happens we\'ll NPE below when isModified() tries to use a null DirCacheEntry.\n\nWe should either document in the class Javadoc that this filter must only be used on a recursive TreeWalk, or we should return true if FileMode.TREE.equals(wm), so the subtree can be considered by the caller.\n\nA more aggressive (and much more complex) approach would be to recursively stat validate the directory contents if the DirCacheIterator has a valid ObjectId for this tree from the \'TREE\' cache extension.  If all of the files are stat clean, we can return false back, preventing the need to dive into the tree objects from the repository.  That may save some CPU time, but its really frigging hard to get right here in the face of SkipWorkTreeFilter and NotIgnoredFilter also being in the same filter graph (or not being in the filter graph, depending on what the caller wants).',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///7I='),(77,1,'2010-12-08 01:36:25','P',1,'These should be declared final so its much more clear the values can be cached in registers during include().',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///7M='),(101,1,'2010-12-08 01:36:25','P',1,'I don\'t think this is possible.  If we have valid values for dirCacheIndex and workingTreeIndex, n must be at least 2.',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///7Q='),(115,1,'2010-12-08 01:36:25','P',1,'You might as well hardcode this as 0.',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///7U='),(547,100,'2010-12-08 09:58:12','P',1,'style-nit: three different spellings of assume valid (assume-valid, assumeValid)',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL03///58='),(612,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///5w=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL03///5M='),(547,100,'2010-12-08 15:23:40','P',1,'Done','AAAL03///58=',2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL03///5Q='),(612,100,'2010-12-08 09:58:12','P',1,'style-nit: three different spellings of assume valid (assume-valid, assumeValid)',NULL,2066,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL03///5w='),(93,100,'2010-12-08 15:23:03','P',1,'TreeWalk returns \"folder\" two times, whereas \"folder/file\" is not returned. Is this a bug?',NULL,2066,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiffTest.java','AAAL03///4I='),(93,1,'2010-12-08 19:48:43','P',1,'No, this is not a bug.  Its a quirk in the way Git works, and thus in how TreeWalk works.\n\nAbove you converted \"folder\" from a directory into a file.  These names aren\'t considered equal by TreeWalk (but they are equal by NameConflictTreeWalk rules).  So you should get \"folder\" twice in a non-recursive TreeWalk... once as a file, and again as a directory.  Then you get the folder/file path within that (now gone) directory.\n\nIf you made the TreeWalk recursive (like the test above) you wouldn\'t get the folder-as-directory result, and you would only see it appear once.\n\nIf you made the TreeWalk be a NameConflictTreeWalk instead, then you would get folder only once.','AAAL03///4I=',2066,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiffTest.java','AAAL03///xA='),(93,5,'2010-12-09 15:44:02','P',1,'Philipp, I now see why we don\'t see folder/file here. One thing is as Shawn explained that we\'ll get folder twice. But another bug is that we have to explicitly call \"if (treewalk.isSubtree())  treewalk.enterSubtree()\" to dive into subtrees. I\'ll propose a change for that.','AAAL03///xA=',2066,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiffTest.java','AAAL1H///94='),(130,1,'2010-12-08 19:48:43','P',1,'I think we want forceContentCheck to be true here.  This is primarily used only by IndexDiff.  IndexDiff is used only by tools that are trying to create a commit for the user.\n\nIf the user modifies a file, and then reverts its content back to what was already committed (or staged) but doesn\'t revert the last modified time of the file, we shouldn\'t show the file as modified in IndexDiff just because the timestamp is wrong.  So we should force a content check to ensure this isn\'t the case.',NULL,2066,2,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///w4='),(97,1,'2010-12-08 19:48:43','P',1,'We need to special case when dirCacheIndex or workingTreeIndex are pointing at a tree.  We always need to recurse into the subtree because the WorkingTreeIterator cannot provide an ObjectId to bypass the subtree on equality alone, and the filter is invoked before the recursive flag of the TreeWalk is considered.',NULL,2066,2,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexWorkingTreeDiff.java','AAAL03///w8='),(552,1,'2010-12-08 19:48:43','P',1,'We shouldn\'t need this flag.',NULL,2066,2,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL03///xE='),(10,5,'2010-12-09 15:33:17','P',1,'s/IndexDiffFitler/IndexDiffFilter/',NULL,2066,3,'/COMMIT_MSG','AAAL1H///+U='),(80,5,'2010-12-09 15:33:17','P',1,'But why have you removed the test-case fro NonRecursive? Specifically because of a comment from you about possible NPEs with non-recursive treewalks we added this test. Since we don\'t disallow usage of this filter with non-recursive treewalks we should test it, or?',NULL,2066,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL1H///+A='),(53,5,'2010-12-09 17:03:17','P',1,'Phillip, just propose a new change as a successor of this one where you add all your test improvements.','AAAL1H///9w=',2066,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL1H///9g='),(80,1,'2010-12-09 16:46:14','P',1,'Originally I removed the testNonRecursiveTreeWalk() because I don\'t think you want to use IndexDiffFilter when isRecursive() is false.  Its just not very useful to see the subtree nodes, because you have to see all of them.\n\nBut we can put a test back for that.  It should work.','AAAL1H///+A=',2066,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL1H///9o='),(53,100,'2010-12-09 16:36:59','P',1,'I have been working most of the day on improving this test class. I wanted to achive a 100% code coverage for the IndexDiffFilter.include() method. By doing so I actually learned a lot about TreeWalks and TreeFilters ;-)\r\n\r\nAs I am not allowed to upload a patch for this change, I would suggest that we keep this class for now as it is and afterwards enhance it with my version in a separate change.',NULL,2066,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL1H///9w='),(196,1,'2010-12-08 16:33:51','P',0,'If we are in a file/folder conflict, we shouldn\'t ever see the folder.  A recursive TreeWalk doesn\'t return folders, only files.\n\nIf \"foo\" is a file in the dirCache, and now a directory in the workingTree, and the workingTree also has \"foo/bar\", we should see during iteration:\n\n First Result:\n    dirCacheIterator = \"foo\"\n    workingTreeIterator = null\n\n  Second Result\n    dirCacheIterator = null\n    workingTreeIterator = \"foo/bar\"\n\nNow if you changed the type of TreeWalk to NameConflictTreeWalk then this may change a little.  In a recursive NameConflictTreeWalk we may very well wind up with a tree when there is also a file.\n\nSo I think this change is safe, because we should never be seeing a tree type on any of the iterators, as the recursive TreeWalk won\'t return them.','AAAL03///6U=',2070,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL03///0U='),(196,5,'2010-12-08 08:22:27','P',0,'One question about this: If we are in a file/folder conflict situation (one Iterator has a file and another Iterator has a tree for the same path) what is returned in a recursive treewalk. Will walk.getFileMode(<indexOfIteratorWithTree>) return MISSING?',NULL,2070,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL03///6U='),(3,4,'2010-12-08 15:15:42','P',1,'should refer to JavaSE-1.5 to match the corresponding setting in the manifest',NULL,2076,1,'org.eclipse.jgit.junit.http/.classpath','AAAL03///4g='),(79,4,'2010-12-08 15:15:42','P',1,'style nit: trailing whitespace',NULL,2076,1,'org.eclipse.jgit.junit.http/pom.xml','AAAL03///4c='),(22,1,'2010-12-08 16:54:50','P',1,'Why the heck are we using 7.0.1 in OSGi land, and 7.1 in Maven land?\n\nI\'d like them to be as close to the same version as possible so we have less surprises when tests get run.',NULL,2076,3,'org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF','AAAL03///z4='),(22,1,'2010-12-08 17:47:57','P',1,'Yes.  Please upgrade to a version that is available both under p2 and Maven so we are consistent (and on a newer release).','AAAL03///zs=',2076,3,'org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF','AAAL03///zQ='),(22,44,'2010-12-08 17:11:41','P',1,'Right. Should we move to 7.1.6 as proposed by Chris?','AAAL03///z4=',2076,3,'org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF','AAAL03///zs='),(43,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3o=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/RepoPropertiesPage.java','AAAL03///2c='),(36,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3s=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/RepoPropertiesPage.java','AAAL03///2g='),(100,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3g=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/RepoPropertiesPage.java','AAAL03///2U='),(95,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3k=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/RepoPropertiesPage.java','AAAL03///2Y='),(100,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/RepoPropertiesPage.java','AAAL03///3g='),(95,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/RepoPropertiesPage.java','AAAL03///3k='),(43,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/RepoPropertiesPage.java','AAAL03///3o='),(36,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/RepoPropertiesPage.java','AAAL03///3s='),(38,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3c=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTest.java','AAAL03///2Q='),(38,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTest.java','AAAL03///3c='),(1,44,'2010-12-08 16:20:12','P',1,'Done','AAAL03///3Q=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///0k='),(72,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3I=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///1o='),(48,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3M=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///2E='),(43,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3U=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///2I='),(40,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3Y=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///2M='),(72,4,'2010-12-08 15:39:47','P',1,'typo: s/have/has/',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///3I='),(48,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///3M='),(1,4,'2010-12-08 15:39:47','P',1,'missing license header',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///3Q='),(43,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///3U='),(40,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/GitCloneWizardTestBase.java','AAAL03///3Y='),(90,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///28=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/SampleTestRepository.java','AAAL03///1c='),(89,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3A=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/SampleTestRepository.java','AAAL03///1g='),(66,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///3E=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/SampleTestRepository.java','AAAL03///1k='),(166,44,'2010-12-08 16:17:28','P',1,'Done','AAAL03///24=',2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/SampleTestRepository.java','AAAL03///1Y='),(166,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/SampleTestRepository.java','AAAL03///24='),(90,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/SampleTestRepository.java','AAAL03///28='),(89,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/SampleTestRepository.java','AAAL03///3A='),(66,4,'2010-12-08 15:39:47','P',1,'style nit: trailing whitespace',NULL,2077,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/clone/SampleTestRepository.java','AAAL03///3E='),(306,4,'2010-12-09 12:15:29','d',1,'we don\'t need this local variable',NULL,2081,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AAAL1H///+8='),(489,4,'2010-12-09 12:13:25','d',1,'trailing whitespace',NULL,2081,2,'org.eclipse.jgit/src/org/eclipse/jgit/JGitText.java','AAAL1H////A='),(448,1,'2010-12-10 16:28:47','P',1,'Oh, right.  OK, that will certainly simplify this block.',NULL,2083,1,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java','AAAL1H///7c='),(85,1,'2010-12-10 16:28:47','P',1,'This ordering change must be a bug in the Eclipse \"Organize Imports\" command.  I can\'t see why it would do this though, FileHeader.PatchType should always be sorting before HunkHeader.  *sigh*','AAAL1H///7s=',2083,1,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java','AAAL1H///7g='),(448,100,'2010-12-10 16:25:15','P',1,'According to the setter, pathFilter cannot be null.',NULL,2083,1,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java','AAAL1H///7o='),(85,100,'2010-12-10 16:25:15','P',1,'style-nit: somehow the ordering got changed...',NULL,2083,1,'org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java','AAAL1H///7s='),(464,8,'2010-12-13 05:33:12','P',1,'1) I think the extension should be able to manipulate the message in any way, not just append to it.\n\n2) Do not append a line separator if one is already present.\n\n3) At this level we might want the platform neutral line separator. We want that in the final commit message, so do not assume we know anything about how the dialog represents the message internally, My suspision is that extensions are likely to get this wrong if we require the use of the platform line separator.',NULL,2084,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL1X///84='),(127,4,'2010-12-09 08:32:53','P',1,'i18n: text should be externalized\n\nThis text looks good, but at runtime I see a different tooltip text on the gerrit button: \"Inserts the final id when you press Commit\" -> that\'s hard to understand',NULL,2090,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL1H////4='),(123,4,'2010-12-09 08:32:53','P',1,'i18n: text should be externalized',NULL,2090,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL1H////8='),(166,4,'2010-12-09 08:32:53','P',1,'i18n: shouldn\'t that be translatable (think about Chinese) ?',NULL,2090,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/SpellcheckableMessageArea.java','AAAL1H////0='),(129,100,'2010-12-10 11:54:49','P',1,'Okay, I did not take the \'magic\' of DirCache into account. Now I understand that for an ignored folder, that does not contain any (previously) tracked files, the rawmode of the DirCache entry is 0 (which allows the original implemantation to skip the entire folder). Whereas for folders (ignored or not), that contain tracked files, the rawmode is not 0. Or to put it in other words: DirCache only contains folders, if they contain tracked files...','AAAL1H///8E=',2098,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexDiffFilter.java','AAAL1H///74='),(129,1,'2010-12-10 00:36:17','P',1,'This causes us to always dive into all ignored folders.\n\nIf the ignored folder is a build output directory, we may be looking at millions of file paths that are all ignored, and that we don\'t care about, anywhere.\n\nBy putting the check after the DirCache code below we can safely skip ignored directories, but only if there are no tracked files within the ignored directory.  (If a file is tracked, it is should always be looked at, even if it is also ignored.)',NULL,2098,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/IndexDiffFilter.java','AAAL1H///8E='),(175,1,'2010-12-11 01:11:40','P',1,'I would put this on the failure path:\n\n  if (!d.mkdir()) {\n    if (skipExisting && d.isDirectory())\n      return;\n\n    throw new IOException(...);\n  }\n\nBecause odds are the caller wants to make a new directory and we can reasonably assume it doesn\'t exist yet.  If it does, we\'ll fail on the mkdir and check its mode, if its a directory, we\'re fine, if its not, we fail.',NULL,2101,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL1X////4='),(82,1,'2010-12-11 01:11:40','P',1,'Why do we need this int when you use a boolean below?',NULL,2101,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL1X////8='),(175,4,'2010-12-11 23:45:52','P',1,'Done','AAAL1X////4=',2101,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL1X///+s='),(82,4,'2010-12-11 23:45:52','P',1,'missed to remove that','AAAL1X////8=',2101,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL1X///+w='),(491,8,'2010-12-12 23:20:51','P',1,'Unrelated whitespace change',NULL,2101,4,'org.eclipse.jgit/src/org/eclipse/jgit/JGitText.java','AAAL1X///9I='),(386,5,'2010-12-11 08:39:25','P',1,'I am not completely sure about that. I intentionally didn\'t checked the return code from mkdirs. If mkdirs fails and a directory is not created then the subsequent createNewFile will fail. Therefore I\'ll detect an error situation and don\'t want to spend extra stats() to check for file-existance and file-type which is done in FileUtils.',NULL,2104,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL1X////c='),(386,4,'2010-12-11 23:59:19','P',1,'ok, understood that you want to avoid the extra stats, hence now checking return value in a different way here\n\nmkdirs() fails if the directory is already existing so this will not fail the subsequent createNewFile() call.','AAAL1X////c=',2104,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL1X///+k='),(112,4,'2011-01-14 17:14:34','d',1,'Done','AAAL2n///74=',2104,5,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///48='),(112,8,'2011-01-14 07:35:33','P',1,'Swap this and the next commit and use the new FileUtils.createNewFile API instead. With assert it looks like this is part of the test, rather than setup.\nThis comment applies to all similar lines.',NULL,2104,5,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///74='),(352,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///4c='),(323,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///4g='),(300,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///4k='),(110,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///4o='),(433,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///4U='),(379,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///4Y='),(433,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4U=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///J8='),(379,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4Y=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///KA='),(352,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4c=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///KE='),(323,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4g=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///KI='),(300,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4k=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///KM='),(110,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4o=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java','AAAL2n///KQ='),(59,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/FileRepositoryBuilderTest.java','AAAL2n///4Q='),(59,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4Q=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/FileRepositoryBuilderTest.java','AAAL2n///J4='),(234,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/T0003_BasicTest.java','AAAL2n///4I='),(205,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/T0003_BasicTest.java','AAAL2n///4M='),(205,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4M=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/T0003_BasicTest.java','AAAL2n///J0='),(234,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4I=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/T0003_BasicTest.java','AAAL2n///Js='),(76,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java','AAAL2n///4A='),(73,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java','AAAL2n///4E='),(76,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4A=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java','AAAL2n///Jk='),(73,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///4E=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java','AAAL2n///Jo='),(114,8,'2011-01-15 14:05:23','P',1,'unnecessary due to mkDir',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java','AAAL2n///34='),(113,8,'2011-01-15 14:05:23','P',1,'Use FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java','AAAL2n///38='),(114,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///34=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java','AAAL2n///Jc='),(113,4,'2011-01-26 23:38:06','P',1,'Done','AAAL2n///38=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java','AAAL2n///Jg='),(95,8,'2011-01-15 14:05:23','P',1,'how did the previous version work? \n\nUse FileUtils.mkdirs',NULL,2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FileUtilTest.java','AAAL2n///4w='),(95,4,'2011-01-26 23:38:06','P',1,'createNewFile silently failed without consequences\n\nDone','AAAL2n///4w=',2104,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FileUtilTest.java','AAAL2n///JY='),(17,8,'2011-01-15 14:05:23','P',1,'Why?',NULL,2104,6,'org.eclipse.jgit/findBugs/FindBugsExcludeFilter.xml','AAAL2n///30='),(17,4,'2011-01-26 23:38:06','P',1,'since findbugs still complains about the ignored return value in DirCacheCheckout line 386, I think since the compiler deletes the empty block just containing a comment','AAAL2n///30=',2104,6,'org.eclipse.jgit/findBugs/FindBugsExcludeFilter.xml','AAAL2n///JU='),(387,8,'2011-01-15 14:05:23','P',1,'Why not FileUtils.mkdirs?',NULL,2104,6,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL2n///4s='),(387,4,'2011-01-26 23:38:06','P',1,'see Chris\' comment on patchset 2','AAAL2n///4s=',2104,6,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL2n///KU='),(234,1,'2010-12-11 01:13:14','P',1,'What does this note mean?  Are you just trying to keep people from using this method rather than our LockFile class?',NULL,2105,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL1X////w='),(234,4,'2010-12-12 00:20:41','P',1,'I am just citing the javadoc of java.io.File.createNewFile() since we use that to implement this method. I thought that I shouldn\'t hide this note since we don\'t change this property of the implementation by wrapping it.','AAAL1X////w=',2105,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL1X///+c='),(234,1,'2010-12-30 20:20:34','P',1,'OK.  Given what this method exists for, I can agree with leaving the note in place since its just echoed from the system Javadoc.\n\nI do love the differences in summary though, the Javadoc starts out saying its atomic, but then later implies it might not actually be atomic since it cannot be made to work reliably.  Cute.  :-)','AAAL1X///+c=',2105,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java','AAAL2X///2U='),(132,8,'2010-12-30 13:43:23','P',1,'Compare with deleteFileFailed. I think this should be:\ncreateNewFileFailed=Could not create new file {0}',NULL,2105,2,'org.eclipse.jgit/resources/org/eclipse/jgit/JGitText.properties','AAAL1X///88='),(132,4,'2010-12-30 22:22:35','P',1,'Done','AAAL1X///88=',2105,2,'org.eclipse.jgit/resources/org/eclipse/jgit/JGitText.properties','AAAL2X///0w='),(387,1,'2010-12-11 01:14:35','P',1,'This should fail (by throwing) if the file already exists.\n\nI think based on the comment above on line 384 (\"create/overwrite\") that we might be here for files that already exist, resulting in an IOException.  The old code ignored the failure, but the new code would crash when it needs to continue.',NULL,2106,1,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL1X////o='),(387,4,'2010-12-12 00:38:43','P',1,'Done','AAAL1X////o=',2106,1,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL1X///+E='),(88,8,'2010-12-12 22:37:53','P',1,'In general I think we should use another pattern here, i.e. use a file utility that throws an exception on error. We are not really testing that createNewFile works here, but since there is another pattern already in place, it\'s better to move it to a separate commit, OR fix the mkdirs asserts too.',NULL,2106,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FileUtilTest.java','AAAL1X///9g='),(389,8,'2010-12-12 22:37:53','P',1,'Not exactly related to this patch, but why are we creating a file this way\nand THEN a checkout?',NULL,2106,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL1X///9k='),(390,4,'2011-01-10 23:28:15','P',1,'this is not causing bug 333903 but this method call can be dropped (see change I219f864f2ed8d68051d7b5955d0659964fa27274)','AAAL2X///yw=',2106,4,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL2X///f8='),(390,8,'2010-12-31 14:33:53','P',1,'Iinstead of hiding a bug, we should fix https://bugs.eclipse.org/333093\n\nA guess...',NULL,2106,4,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL2X///yw='),(120,4,'2011-01-28 00:14:16','P',1,'Done','AAAL2n///Eg=',2106,7,'org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/FileResolverTest.java','AAAL2n///D8='),(120,8,'2011-01-27 23:14:35','P',1,'One of these lines is one too many. Replace both with one call to FileUtils.createNewFile',NULL,2106,7,'org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/FileResolverTest.java','AAAL2n///Eg='),(552,4,'2011-01-28 00:14:16','P',1,'Done','AAAL2n///EY=',2106,7,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL2n///D0='),(541,4,'2011-01-28 00:14:16','P',1,'Done','AAAL2n///Ec=',2106,7,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL2n///D4='),(558,4,'2011-01-28 00:14:16','P',1,'Done','AAAL2n///EU=',2106,7,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL2n///Dw='),(541,8,'2011-01-27 23:14:35','P',1,'Replace both asserts with one FileUtils.mkDirs',NULL,2106,7,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL2n///Ec='),(558,8,'2011-01-27 23:14:35','P',1,'Replace both asserts with one FileUtils.mkDirs',NULL,2106,7,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL2n///EU='),(552,8,'2011-01-27 23:14:35','P',1,'Replace both asserts with one FileUtils.mkDirs',NULL,2106,7,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/IndexDiffFilterTest.java','AAAL2n///EY='),(561,1,'2010-12-13 19:11:22','P',1,'This is more efficient:\n\n  !FileMode.SYMLINK.equals(entry.getRawMode())\n\nThe issue is, getFileMode() has to test a number of FileMode constants to see which one it matches... after it called getRawMode() to get the integer value.  Testing the integer value against FileMode.SYMLINK only will save some compares.',NULL,2109,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL1n////w='),(10,4,'2010-12-13 21:45:48','P',1,'typo: s/lenght/length/',NULL,2111,1,'/COMMIT_MSG','AAAL1n////E='),(174,1,'2010-12-15 21:07:09','P',1,'Done','AAAL1n///90=',2114,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileSnapshot.java','AAAL13////4='),(85,1,'2010-12-15 21:07:09','P',1,'Done','AAAL1n///8Y=',2114,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileSnapshot.java','AAAL13////8='),(176,8,'2010-12-15 21:36:47','P',1,'I think it was because updating a pack file might take some time to complete and the check is on the directory. I think that is flawed because we don\'t write pack files to their final name, and when we rename to the final name, the directory timestamp is modified, so 2 seconds is probably ok here too.','AAAL13////w=',2114,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileSnapshot.java','AAAL13////Q='),(176,1,'2010-12-15 21:07:09','P',1,'Ah, right.  Good catch.  I\'m changing this to 2500 (2.5 seconds).\n\nObjectDirectory\'s use of 2 minutes dates back to pre-Eclipse history:\n\n  commit 4c8d63e588212f48e7ebd09580defd9a62c73c61\n  Author: Shawn O. Pearce <spearce@spearce.org>  Wed Aug 12 12:45:23 2009\n  Committer: Robin Rosenberg <robin.rosenberg@dewire.com>  Wed Aug 12 15:24:37 2009\n  Original File: org.spearce.jgit/src/org/spearce/jgit/lib/ObjectDirectory.java\n\n  Fix racy condition when a repository is repacked\n\n  If the filesystem clock granularity is sufficiently large enough it\n  is possible for a repacking program such as `git repack` to change\n  the same directory more than once within the same modification time.\n\n  If JGit were to scan the directory between changes in the same\n  clock step it will never see the later edits, because the directory\n  modification time has not changed.\n\n  Instead we now keep track of the last time we read the directory.\n  If an object cannot be found on disk and the pack directory\'s last\n  modified time is less than 2 minutes since the last time we read\n  the directory\'s contents, we scan it again looking for changes.\n\n  Worst case scenario, JGit will list the pack directory once for\n  each requested missing object, until the directory has aged at\n  least 2 minutes.  Most repositories modify this directory only a\n  few times a week, so this is not an undue burden on the host.\n\nI didn\'t have a real justification for 2 minutes, it was just a fudge number.  We can probably safely change this to 2.5 seconds.','AAAL1n///8c=',2114,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileSnapshot.java','AAAL13////w='),(176,8,'2010-12-14 23:09:04','P',1,'This is three minutes. \n\nAn since FAT is two seconds we require only larger than two seconds. On many file systems that is three seconds, but 2.001 would do.\n\nWith a Unit test you would have found this out.\n\nDo we break anything because the ObjectDirectory had two /minutes/ as fudge?',NULL,2114,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileSnapshot.java','AAAL1n///8c='),(85,8,'2010-12-14 23:09:04','P',1,'Use SystemReader.',NULL,2114,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileSnapshot.java','AAAL1n///8Y='),(174,4,'2010-12-14 08:24:31','P',1,'typo: s/the a/a/',NULL,2114,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileSnapshot.java','AAAL1n///90='),(203,8,'2010-12-14 20:04:56','P',1,'Good catch!',NULL,2116,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PullCommandTest.java','AAAL1n///8w='),(1005,8,'2010-12-20 21:45:00','P',1,'Did I lure you into this, with my comment in FileSnapshot?\n\nThe test class inherits from a class that configures the MockSystemReader, whose concept of currentTime is not related to File.lastModified as System.getCurrentTime',NULL,2118,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RefDirectoryTest.java','AAAL2H////Y='),(1005,1,'2010-12-21 00:12:45','P',1,'Yea, I wasn\'t thinking and just dropped it into the test.  :-(','AAAL2H////Y=',2118,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RefDirectoryTest.java','AAAL2H///9w='),(1005,1,'2011-03-27 21:00:01','P',1,'Yes, I think that is why I have a -1 on this patch. Robin\'s remark above is correct we should use java.lang.System here and not SystemReader.','AAAL3n//+1I=',2118,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RefDirectoryTest.java','AAAL33///+4='),(1005,5,'2011-03-22 22:55:55','P',1,'shouldn\'t you use a simple System.currrentTimeMillis() instead of the SystemReader?','AAAL2H///9w=',2118,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RefDirectoryTest.java','AAAL3n//+1I='),(32,4,'2010-12-23 12:34:27','P',1,'s/Pierce/Pearce/',NULL,2120,4,'/COMMIT_MSG','AAAL2H///5c='),(20,4,'2010-12-23 12:34:27','P',1,'s/verions/versions/',NULL,2120,4,'/COMMIT_MSG','AAAL2H///5g='),(20,9,'2010-12-28 11:32:43','P',1,'Done','AAAL2H///5g=',2120,4,'/COMMIT_MSG','AAAL2X////A='),(32,9,'2010-12-28 11:32:43','P',1,'Done','AAAL2H///5c=',2120,4,'/COMMIT_MSG','AAAL2X///+8='),(75,4,'2010-12-23 12:34:27','P',1,'what\'s the difference compared to testEditEdit() ?',NULL,2120,4,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/DefaultNoteMergerTest.java','AAAL2H///3Y='),(1,4,'2010-12-23 12:34:27','P',1,'missing license header',NULL,2120,4,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/DefaultNoteMergerTest.java','AAAL2H///5Y='),(75,9,'2010-12-28 11:32:43','P',1,'copy/paste error ;-)\nthe baseNote should be null in case of add.','AAAL2H///3Y=',2120,4,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/DefaultNoteMergerTest.java','AAAL2X////c='),(1,9,'2010-12-28 11:32:43','P',1,'Done','AAAL2H///5Y=',2120,4,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/DefaultNoteMergerTest.java','AAAL2X////g='),(1,4,'2010-12-23 12:34:27','P',1,'missing license header',NULL,2120,4,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/NoteMapMergerTest.java','AAAL2H///5U='),(1,9,'2010-12-28 11:32:43','P',1,'Done','AAAL2H///5U=',2120,4,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/NoteMapMergerTest.java','AAAL2X////Y='),(20,4,'2010-12-23 12:34:27','P',1,'\"other must be an edit\":\nours and theirs could be both null, you have a test case for that, so I think the javadoc is misleading here',NULL,2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2H///3c='),(39,4,'2010-12-23 12:34:27','P',1,'maybe add /**{@inheritDoc} */ here to make the interface documentation also visible here',NULL,2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2H///3g='),(1,4,'2010-12-23 12:34:27','P',1,'missing license header',NULL,2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2H///5Q='),(20,9,'2010-12-28 11:32:43','P',1,'Done','AAAL2H///3c=',2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X////M='),(39,9,'2010-12-28 11:32:43','P',1,'I haven\'t found the @inheritDoc used anywhere in JGit and wouldn\'t make an exception here.','AAAL2H///3g=',2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X////Q='),(1,9,'2010-12-28 11:32:43','P',1,'Done','AAAL2H///5Q=',2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X////U='),(39,1,'2010-12-29 20:48:54','P',1,'Right.  We don\'t use @inheritDoc anywhere.  Lets not start.','AAAL2X////Q=',2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X///7g='),(238,4,'2010-12-23 12:34:27','P',1,'you already know that it\'s the same note or null here as you checked that above using sameNoteOrNull(). So this could instead be sameContent() to avoid comparing the IDs again',NULL,2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2H///3U='),(238,9,'2010-12-28 11:32:43','P',1,'Done','AAAL2H///3U=',2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X////I='),(1,4,'2010-12-23 12:34:27','P',1,'missing license header',NULL,2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NotesMergeConflictException.java','AAAL2H///5M='),(1,9,'2010-12-28 11:32:43','P',1,'Done','AAAL2H///5M=',2120,4,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NotesMergeConflictException.java','AAAL2X////E='),(14,1,'2010-12-29 21:19:56','P',1,'s/than/that/',NULL,2120,5,'/COMMIT_MSG','AAAL2X///7Y='),(14,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///7Y=',2120,5,'/COMMIT_MSG','AAAL2X///to='),(73,1,'2010-12-29 21:19:56','P',1,'Might as well make this public, so developers can explicitly use this if they want.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X///6g='),(98,1,'2010-12-29 21:19:56','P',1,'Style-nit: Curly braces are unnecessary here.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X///6o='),(108,1,'2010-12-29 21:19:56','P',1,'If the NoteMapMerger is using the same reader/inserter pair you don\'t need to flush here.  Just flush once in the NoteMapMerger.  This allows some level of buffering in the ObjectInserter implementation.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X///6Y='),(108,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///6Y=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X///u0='),(98,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///6o=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X///u4='),(73,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///6g=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/DefaultNoteMerger.java','AAAL2X///uw='),(73,1,'2010-12-29 21:19:56','P',1,'This was done.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java','AAAL2X///60='),(73,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///60=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java','AAAL2X///us='),(190,1,'2010-12-29 21:19:56','P',1,'This inner type isn\'t necessary, is it?\n\nWhy can\'t the method be:\n\n  if (root != null)\n    return root.iterator(new MutableObjectId(), reader);\n  else:\n    return Collections.<Note>emptyList().iterator();',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///68='),(197,1,'2010-12-29 21:19:56','P',1,'If the itr is null, return false.  Else next() throws NPE.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///7A='),(187,1,'2010-12-29 21:19:56','P',1,'This can probably go in an earlier commit along with a new unit test to verify iterator() works as expected.  Then you can rely on it to verify the result of a merge in the merge unit tests.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///7E='),(308,1,'2010-12-29 21:19:56','P',1,'Do we use this method?  I think its a left-over from one of your prior iterations.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///7I='),(378,1,'2010-12-29 21:19:56','P',1,'Style-nit: You can fit this all on one line:\n\n  /** @return the root note bucket */',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///7M='),(380,1,'2010-12-29 21:19:56','P',1,'This shouldn\'t be public, the type it returns isn\'t public.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///7Q='),(188,1,'2010-12-29 21:19:56','P',1,'Style-nit: Unnecessary blank line.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///7U='),(187,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///7E=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///u8='),(378,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///7M=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///uc='),(308,9,'2011-01-05 06:38:08','P',1,'No, we don\'t use it any more. Removed.','AAAL2X///7I=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///ug='),(197,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///7A=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///uk='),(188,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///7U=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///uo='),(380,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///7Q=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///uY='),(190,9,'2011-01-05 06:38:08','P',1,'Should root == null be supported? I checked the NoteParser and in no case root will be null.','AAAL2X///68=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2X///vA='),(96,1,'2010-12-29 21:19:56','P',1,'This class and the NoteMerger should really use the same reader and inserter.  Please try harder to make sure they are identical objects.\n\n(The reason is, the reader may need to know that the inserter has created something.)',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///6c='),(131,1,'2010-12-29 21:19:56','P',1,'Wrap all of this method body in a try finally:\n\n  try {\n    ... current code ...\n  } finally {\n    reader.release();\n    inserter.release();\n  }\n\nThat way the caller doesn\'t have to release our resources via another method call.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///6E='),(322,1,'2010-12-29 21:19:56','P',1,'I don\'t think we want the release here.  So we can drop the try/finally block.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///6I='),(313,1,'2010-12-29 21:19:56','P',1,'We should make the MergeStrategy configurable, defaulting to MergeStrategy.RESOLVE.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///6M='),(171,1,'2010-12-29 21:19:56','P',1,'I don\'t know if we need this call anymore.  As I understand how the code works, this temporary fanout bucket isn\'t needed as a tree anywhere, so we shouldn\'t have to write it.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///6U='),(313,9,'2011-01-05 06:38:08','P',1,'OK, made it configurable. However, this complicated the implementation of this method a bit as I had to distinguish the case where the configured MergeStrategy is an instanceof ThreeWayMergeStrategy and where it is not. I don\'t know if it was possible to do the implementation by using only the base MergeStrategy interface.','AAAL2X///6M=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///t4='),(322,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///6I=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///t8='),(131,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///6E=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///uA='),(171,9,'2011-01-05 06:38:08','P',1,'Right, we don\'t need to writeTree here.\nActually, removing this method call revealed a bug in the addIfNotNull method below which caused the NoteMapMergerTest.testCollapseFanoutAfterMerge to fail with a \"Missing tree ...\". When the child parameter in the addIfNotNull is an instance of InMemoryNoteBucket then we should have added it to the fanout bucket using the other setBucket method:\n\n void setBucket(int cell, InMemoryNoteBucket bucket)\n\nAdding it using the child.getTreeId() causes the estimateSize method to fail because it finds a LazyNoteBucket in a cell for which the tree object doesn\'t exist in the Git object database.','AAAL2X///6U=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///uE='),(96,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///6c=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///uI='),(56,1,'2010-12-29 21:19:56','P',1,'You need to also modify the Note class to make it public and allow implementations of this interface from outside of this package.',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMerger.java','AAAL2X///6k='),(56,9,'2011-01-05 06:38:08','P',1,'Made the Note class public but didn\'t expose the constructor and the setData method as I wasn\'t sure if this was really necessary. So, for now Note instances are read-only outside of this package.','AAAL2X///6k=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMerger.java','AAAL2X///t0='),(88,1,'2010-12-29 21:19:56','P',1,'You probably want to use the name field from the NonNoteEntry rather than rely on the toString().',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NotesMergeConflictException.java','AAAL2X///6s='),(71,1,'2010-12-29 21:19:56','P',1,'These names must all be the same... the notes are on the same value.\n\nI think you need 4 strings:  the getName() from the first non-null base/ours/theirs as this is the name of the object the note is on, and then the getData().getName() from each non-null base, ours, theirs as that is the name of the blob content for the note.\n\nSomething like:\n\n  private static String noteOn(Note base, Note ours, Note theirs) {\n    if (base != null)\n      return base.name();\n    if (ours != null)\n      return ours.name();\n    return theirs.name();\n  }\n\n  private static String noteData(Note n) {\n    if (n != null)\n      return n.getData().name();\n    return \"\";\n  }\n\n  public NotesMergeConflictException(Note base, Note ours, Note theirs) {\n    super(MessageFormat.format(JGitText.get().mergeConflictOnNotes(),\n      noteOn(base, ours, theirs),\n      noteData(base), noteData(ours), noteData(theirs)));',NULL,2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NotesMergeConflictException.java','AAAL2X///6w='),(88,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///6s=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NotesMergeConflictException.java','AAAL2X///ts='),(71,9,'2011-01-05 06:38:08','P',1,'Done','AAAL2X///6w=',2120,5,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NotesMergeConflictException.java','AAAL2X///tw='),(180,9,'2011-01-05 06:47:36','P',1,'Done','AAAL2X///tM=',2120,6,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///s0='),(229,9,'2011-01-05 06:47:36','P',1,'Done','AAAL2X///tI=',2120,6,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///ss='),(347,9,'2011-01-05 06:47:36','P',1,'Done','AAAL2X///tQ=',2120,6,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///sw='),(229,1,'2011-01-04 19:17:45','P',1,'I\'m not sure we want to do this.  By setting the source InMemoryBucket from either the ours or theirs side into the result, any modification made by the caller to the result NoteMap will also impact the input ours or theirs map.  (Or vice-versa, any later modification to ours/theirs impacts the result.)\n\nDid you add this because removing the writeTree() from asFanout() after the LeafBucket split() broke tests?  If so then I was wrong earlier, we would need the writeTree()... but only if we are reusing the bucket.  So maybe instead its more like:\n\n  if (child == null)\n    return;\n  if (child instanceof InMemoryNoteBucket)\n    b.setBucket(cell, ((InMemoryNoteBucket)child).writeTree(inserter));\n  else\n    b.setBucket(cell, child.getTreeId());',NULL,2120,6,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///tI='),(180,1,'2011-01-04 19:17:45','P',1,'Since we dropped the writeTree call, we probably don\'t need this local variable anymore and can instead just return the result of split().',NULL,2120,6,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///tM='),(347,1,'2011-01-04 19:17:45','P',1,'We probably could make this method non-static, change \"ins\" to be the field \"inserter\" and then drop the 2nd parameter.',NULL,2120,6,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMapMerger.java','AAAL2X///tQ='),(89,9,'2011-01-05 06:47:36','P',1,'Done','AAAL2X///tU=',2120,6,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NotesMergeConflictException.java','AAAL2X///so='),(89,1,'2011-01-04 19:17:45','P',1,'Any of base, ours, theirs could be null if that NonNoteEntry doesn\'t exist... causing the conflict to NPE.\n\nYou need something similar to noteOn here:\n\n  private static String name(NonNoteEntry e) {\n    return e != null ? e.name() : \"\";\n  }',NULL,2120,6,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NotesMergeConflictException.java','AAAL2X///tU='),(84,4,'2011-01-08 23:30:20','P',1,'Done','AAAL2X///rk=',2120,9,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/DefaultNoteMergerTest.java','AAAL2X///mQ='),(73,4,'2011-01-08 23:30:20','P',1,'Done','AAAL2X///ro=',2120,9,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/DefaultNoteMergerTest.java','AAAL2X///mU='),(84,1,'2011-01-05 18:43:24','P',1,'Should have @After for JUnit 4.',NULL,2120,9,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/DefaultNoteMergerTest.java','AAAL2X///rk='),(73,1,'2011-01-05 18:43:24','P',1,'Should have @Before for JUnit 4.',NULL,2120,9,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/DefaultNoteMergerTest.java','AAAL2X///ro='),(125,4,'2011-01-08 23:30:20','P',1,'Done','AAAL2X///rc=',2120,9,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/NoteMapMergerTest.java','AAAL2X///mI='),(95,4,'2011-01-08 23:30:20','P',1,'Done','AAAL2X///rg=',2120,9,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/NoteMapMergerTest.java','AAAL2X///mM='),(125,1,'2011-01-05 18:43:24','P',1,'Should have @After.',NULL,2120,9,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/NoteMapMergerTest.java','AAAL2X///rc='),(95,1,'2011-01-05 18:43:24','P',1,'Should have @Before.',NULL,2120,9,'org.eclipse.jgit.test/tst/org/eclipse/jgit/notes/NoteMapMergerTest.java','AAAL2X///rg='),(63,4,'2011-01-08 23:30:20','P',1,'style nit: trailing whitespace',NULL,2120,9,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMerger.java','AAAL2X///mc='),(10,100,'2010-12-16 14:24:08','P',1,'Done','AAAL1n///88=',2124,1,'org.eclipse.egit.doc/META-INF/MANIFEST.MF','AAAL13///8g='),(10,100,'2010-12-14 18:00:14','P',1,'Do I have to specify bundle-version and/or resolution here?',NULL,2124,1,'org.eclipse.egit.doc/META-INF/MANIFEST.MF','AAAL1n///88='),(10,100,'2010-12-16 14:24:18','P',1,'Done','AAAL13///8s=',2124,2,'org.eclipse.egit.doc/META-INF/MANIFEST.MF','AAAL13///8c='),(10,44,'2010-12-16 13:11:34','P',1,'add version range',NULL,2124,2,'org.eclipse.egit.doc/META-INF/MANIFEST.MF','AAAL13///8s='),(29,100,'2010-12-16 11:27:22','P',1,'Is this the correct bundle-version?',NULL,2124,2,'org.eclipse.egit.ui/META-INF/MANIFEST.MF','AAAL13///84='),(29,100,'2010-12-16 14:24:18','P',1,'Done','AAAL13///84=',2124,2,'org.eclipse.egit.ui/META-INF/MANIFEST.MF','AAAL13///8Y='),(29,100,'2010-12-20 10:34:08','P',1,'Done','AAAL13///3o=',2124,5,'org.eclipse.egit.ui/META-INF/MANIFEST.MF','AAAL13///3E='),(29,44,'2010-12-20 08:42:37','P',1,'Use [3.4.0,4.0.0)','AAAL13///7s=',2124,5,'org.eclipse.egit.ui/META-INF/MANIFEST.MF','AAAL13///3o='),(29,100,'2010-12-16 19:28:40','P',1,'Not sure if this is the correct version...',NULL,2124,5,'org.eclipse.egit.ui/META-INF/MANIFEST.MF','AAAL13///7s='),(2522,100,'2010-12-20 10:34:08','P',1,'Done','AAAL13///7o=',2124,5,'org.eclipse.egit.ui/plugin.xml','AAAL13///3A='),(2522,100,'2010-12-16 19:28:40','P',1,'Ideally the contexts.xml file would also be packaged into the egit.doc plugin. But unfortunately I did not manage to get this working...',NULL,2124,5,'org.eclipse.egit.ui/plugin.xml','AAAL13///7o='),(30,44,'2010-12-20 14:57:08','d',1,'Done','AAAL13///2k=',2124,6,'org.eclipse.egit.doc/cheatsheets/clone.xml','AAAL13///2I='),(30,4,'2010-12-20 14:45:57','P',1,'It should be mentioned that \"Next\" has to be clicked to advance to the next wizard page.',NULL,2124,6,'org.eclipse.egit.doc/cheatsheets/clone.xml','AAAL13///2k='),(23,44,'2010-12-20 14:57:06','d',1,'Done','AAAL13///2o=',2124,6,'org.eclipse.egit.doc/cheatsheets/clone.xml','AAAL13///2M='),(23,4,'2010-12-20 14:45:57','P',1,'style nit: period at the end shouldn\'t be bold\n\nWhere is this documentation referenced ? Shouldn\'t that be linked directly from here ?\n\nAfter filling out URL page it should be mentioned that \"Next\" has to be clicked to advance to the next wizard page.',NULL,2124,6,'org.eclipse.egit.doc/cheatsheets/clone.xml','AAAL13///2o='),(1,44,'2010-12-20 14:53:07','d',1,'Done','AAAL13///2w=',2124,6,'org.eclipse.egit.doc/cheatsheets/clone.xml','AAAL13///2Q='),(1,4,'2010-12-20 14:45:57','P',1,'missing license header',NULL,2124,6,'org.eclipse.egit.doc/cheatsheets/clone.xml','AAAL13///2w='),(1,44,'2010-12-20 14:57:31','d',1,'Done','AAAL13///2s=',2124,6,'org.eclipse.egit.doc/contexts.xml','AAAL13///2E='),(1,4,'2010-12-20 14:45:57','P',1,'missing license header',NULL,2124,6,'org.eclipse.egit.doc/contexts.xml','AAAL13///2s='),(106,1,'2010-12-15 04:48:55','P',1,'Do we really want to put the symlink emulation that Msysgit does into our FileAccessJava class?',NULL,2125,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/fs/FileAccessJava.java','AAAL1n///7U='),(72,1,'2010-12-16 03:03:46','P',1,'I\'ve decided to leave this table as-is and just document in the Java DirEnt class that the values should not be changed.  Since they are public constants we already have to avoid changing them to prevent breaking binary compatibility with other Java code using the DirEnt class.','AAAL1n///7s=',2126,1,'libjgit_native/src/list.c','AAAL13///+E='),(76,1,'2010-12-16 03:03:46','P',1,'Done','AAAL1n///7w=',2126,1,'libjgit_native/src/list.c','AAAL13///+I='),(71,1,'2010-12-16 03:03:46','P',1,'Done','AAAL1n///7o=',2126,1,'libjgit_native/src/list.c','AAAL13///90='),(112,1,'2010-12-15 04:44:13','P',1,'This malloc is ugly.  It would be nice if we could stack allocate the \"average\" buffer on this platform and avoid the malloc/free for common cases.  But that may just turn into wasted stack space if we guess wrong.',NULL,2126,1,'libjgit_native/src/list.c','AAAL1n///7c='),(151,1,'2010-12-15 04:44:13','P',1,'Some C libraries (Darwin aka Mac OS X) have a e->d_namlen that can tell us the length without performing a strlen().  That is faster, but its not available everywhere (notably its missing on Linux).',NULL,2126,1,'libjgit_native/src/list.c','AAAL1n///7g='),(145,1,'2010-12-15 04:44:13','P',1,'This is somewhat hideous.  We double the array, and then later we contract it back to the exact size necessary.  Makes me wonder if returning an immutable List<DirEnt> might be better, because then we don\'t need to contract the result array back to the correct size.  Unfortunately walking the List<DirEnt> would require allocating an Iterator<DirEnt>, so its an object allocation either way.',NULL,2126,1,'libjgit_native/src/list.c','AAAL1n///7k='),(71,1,'2010-12-15 04:44:13','P',1,'This needs to be abstracted somehow.  Not every C library exports d_type.  If its not there, we need to use the DT_UNKNOWN code path (that is, return 0).',NULL,2126,1,'libjgit_native/src/list.c','AAAL1n///7o='),(72,1,'2010-12-15 04:44:13','P',1,'We could load these constants from the Java fields and store them in our struct DirEnt above, that way the native code doesn\'t have to be as closely coupled with the DirEnt class definition.  But it will result in slower machine code because we aren\'t returning constants anymore from a simple function.',NULL,2126,1,'libjgit_native/src/list.c','AAAL1n///7s='),(76,1,'2010-12-15 04:44:13','P',1,'Style-nit: I forgot to clean up trailing whitespace.',NULL,2126,1,'libjgit_native/src/list.c','AAAL1n///7w='),(191,1,'2010-12-15 04:44:13','P',1,'We probably shouldn\'t try the symlink if !isPosix().',NULL,2126,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/fs/FileAccessNativeTest.java','AAAL1n///8E='),(213,1,'2010-12-15 04:44:13','P',1,'These tests assume that the underlying platform actually supports the d_type field.  Not every filesystem does, even if the operating system and libc do.  For example on Linux ext2/3/4 support it but FAT doesn\'t, resulting in TYPE_UNKNOWN coming back instead of the proper types.',NULL,2126,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/fs/FileAccessNativeTest.java','AAAL1n///8I='),(48,1,'2010-12-16 03:03:46','P',1,'Done','AAAL1n///8A=',2126,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/fs/DirEnt.java','AAAL13///+A='),(48,1,'2010-12-15 04:44:13','P',1,'These are obviously missing Javadoc.',NULL,2126,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/fs/DirEnt.java','AAAL1n///8A='),(123,1,'2010-12-16 03:03:46','P',1,'Done','AAAL1n///74=',2126,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/fs/FileAccess.java','AAAL13///94='),(119,1,'2010-12-16 03:03:46','P',1,'Done','AAAL1n///78=',2126,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/fs/FileAccess.java','AAAL13///98='),(123,1,'2010-12-15 04:44:13','P',1,'I\'m not sure we have all of the potential errno cases covered here.  We may be translating other errors into exceptions with our generic jgit_ThrowErrno utility function.',NULL,2126,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/fs/FileAccess.java','AAAL1n///74='),(119,1,'2010-12-15 04:44:13','P',1,'We should document that \".\" and \"..\" are omitted from the returned listing.',NULL,2126,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/fs/FileAccess.java','AAAL1n///78='),(157,1,'2010-12-15 04:44:13','P',1,'I really hate that for the pure-Java case we\'ll have to be a tad slower to make the File.list result conform to the API by wrapping the results.\n\nThis should however let us avoid a number of stat calls to determine file type within FileTreeIterator, and that would really make up for it if our native library was widely deployed.',NULL,2126,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/fs/FileAccessJava.java','AAAL1n///70='),(167,8,'2010-12-15 21:31:37','P',1,'Drop the catch clause here. The finally will do for cleanup, but let the exception fall out of the test and let JUnit handle it and report it as an error, rather than a failure. Your catch also drop the stack frame which is very bad for debugging.',NULL,2127,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java','AAAL13////k='),(147,8,'2010-12-15 21:31:37','P',1,'Accidentally write-protected directories would cause this on other OS:es too. Quite rare, but might need a different way of testing.',NULL,2127,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java','AAAL13////o='),(167,46,'2010-12-16 07:49:26','P',1,'Done','AAAL13////k=',2127,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java','AAAL13///9k='),(147,46,'2010-12-16 07:49:26','P',1,'Done','AAAL13////o=',2127,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java','AAAL13///9o='),(173,8,'2010-12-15 21:31:37','P',1,'I\'d prefer ! ... .isEmpty()',NULL,2127,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java','AAAL13////c='),(86,8,'2010-12-15 21:31:37','P',1,'Don\'t initialize references. Java guarantees default values for all fields. The initialization just means more code to read (and comment on).',NULL,2127,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java','AAAL13////g='),(173,46,'2010-12-16 07:49:26','P',1,'Done','AAAL13////c=',2127,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java','AAAL13///9c='),(86,46,'2010-12-16 07:49:26','P',1,'Done','AAAL13////g=',2127,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java','AAAL13///9g='),(90,8,'2010-12-15 21:31:37','P',1,'Undelete usually means \"recovered after delete\". \nNon-deleted would be better. What if we have both\nconflicts and non-delete files. What status is that?\nWhat is the status when we fail to update files (e.g. that are locked)?',NULL,2127,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java','AAAL13////0='),(90,46,'2010-12-16 07:49:26','P',1,'Renamed to NONDELETED. If there are conflicts, the checkout won\'t complete as well as when update fails. In the first case, we have CONFLICTS, in the second case we have ERROR.','AAAL13////0=',2127,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java','AAAL13///9Y='),(133,8,'2010-12-15 21:31:37','P',1,'A separate commit please.',NULL,2127,1,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL13////Y='),(133,46,'2010-12-16 07:49:26','P',1,'Done','AAAL13////Y=',2127,1,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL13///9Q='),(136,46,'2010-12-20 09:48:25','P',1,'Done','AAAL13///5g=',2127,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java','AAAL13///3Q='),(127,46,'2010-12-20 09:48:25','P',1,'Done','AAAL13///5k=',2127,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java','AAAL13///3U='),(136,4,'2010-12-17 16:05:31','P',1,'wouldn\'t it be better to return List<File> ?',NULL,2127,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java','AAAL13///5g='),(127,4,'2010-12-17 16:05:31','P',1,'wouldn\'t it be better to return List<File> here ?',NULL,2127,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java','AAAL13///5k='),(136,4,'2010-12-20 15:28:07','P',1,'this assertion fails on Mac OS X using HFS',NULL,2127,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CheckoutCommandTest.java','AAAL13///0w='),(128,1,'2010-12-20 17:51:41','P',1,'I really don\'t think File was the right type to use here.  The list of paths that conflict should be relative to the root of the working tree, because that is what the UI will want to show the user.\n\nIf the UI needs the java.io.File, that\'s a simple matter of joining the String with the root of the working tree.\n\nHere by returning java.io.File we can now technically return any path object, one that might not even be prefixed by the working tree root, but is still within it.  Consider if the working tree root is actually resolved via a symlink... here we might return the canonical path and not the logical path.\n\n*sigh*\n\nWe sort-of need the NIO2 Path object.  Maybe we should be implementing something like it for these working tree paths instead of relying on String or File.',NULL,2127,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java','AAAL2H////4='),(128,1,'2010-12-20 19:25:23','P',1,'Probably.  I don\'t think File is the right type for our working tree paths.  Its too easily cast into an absolute or canonical path that then might no longer be part of the working tree.\n\nWe\'ve had trouble with that in EGit, and its why we have funny methods to convert a File into a String for a given RepositoryMapping.  (Its been a while since I looked at that code, so I might not be remembering it exactly.)\n\nIf we want the getParentFile() sort of support here, we probably should just introduce a JGit Path type that we can use for these working tree paths.  If we can get by without it, String is probably fine then.','AAAL2H////w=',2127,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java','AAAL2H////o='),(128,46,'2010-12-20 18:13:51','P',1,'Actually, it was just forwarding the paths (as String) from DirCacheCheckout in my first iteration of this... Matthias Sohn then suggested to change it to File instead. Your comments make a lot of sense, so I guess we should change it back, right?','AAAL2H////4=',2127,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutResult.java','AAAL2H////w='),(161,8,'2010-12-18 15:33:48','P',0,'How is this related to TreeVisitor?',NULL,2135,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0002_Tree.java','AAAL13///44='),(111,8,'2010-12-18 15:33:48','P',0,'How is this related to TreeVisitor?',NULL,2135,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/T0002_Tree.java','AAAL13///48='),(82,8,'2010-12-18 15:33:48','P',0,'Relation to commit message?',NULL,2135,1,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL13///40='),(244,8,'2010-12-18 15:33:48','P',0,'How is this related to treevisitor?',NULL,2135,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Tree.java','AAAL13///4o='),(241,8,'2010-12-18 15:33:48','P',1,'How is this related to treevisitor?',NULL,2135,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Tree.java','AAAL13///4s='),(68,8,'2010-12-18 15:33:48','P',0,'Relation to commit message?',NULL,2135,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Tree.java','AAAL13///4w='),(41,4,'2010-12-20 15:10:37','P',1,'that\'s cryptic and doesn\'t explain that this pushes to the review queue for the master branch',NULL,2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///10='),(34,4,'2010-12-20 15:10:37','P',1,'link seems to be broken',NULL,2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///14='),(15,4,'2010-12-20 15:10:37','P',1,'this link seems to be broken',NULL,2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///18='),(54,4,'2010-12-20 15:10:37','P',1,'typo: s/errors you will the/errors the/',NULL,2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///1k='),(47,4,'2010-12-20 15:10:37','P',1,'style nit: [new branch] should be in quotes',NULL,2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///1o='),(40,4,'2010-12-20 15:10:37','P',1,'better: (which points to the currently checked out branch)',NULL,2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///1s='),(38,4,'2010-12-20 15:10:37','P',1,'that\'s misleading, you should explain how the mapping will look like (branches are mapped so that they have identical names).',NULL,2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///1w='),(10,4,'2010-12-20 15:10:37','P',1,'there is no help icon in the push wizard ...',NULL,2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///2A='),(1,4,'2010-12-20 15:10:37','P',1,'missing license header',NULL,2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///2U='),(40,100,'2010-12-20 17:16:50','P',1,'Done','AAAL13///1s=',2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///y0='),(38,100,'2010-12-20 17:16:50','P',1,'Done','AAAL13///1w=',2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///y4='),(34,100,'2010-12-20 17:16:50','P',1,'Done','AAAL13///14=',2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///y8='),(54,100,'2010-12-20 17:16:50','P',1,'Done','AAAL13///1k=',2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///yo='),(47,100,'2010-12-20 17:16:50','P',1,'Done','AAAL13///1o=',2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///ys='),(41,100,'2010-12-20 17:16:50','P',1,'Done','AAAL13///10=',2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///yw='),(15,100,'2010-12-20 17:16:50','P',1,'Done','AAAL13///18=',2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///zA='),(10,100,'2010-12-20 17:16:50','P',1,'Done\r\n\r\nIt was only available in the wizard that opened from the repositories view. Now it\'s also there when using the context menu on a project.','AAAL13///2A=',2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///zE='),(1,100,'2010-12-20 17:16:50','P',1,'Done','AAAL13///2U=',2138,3,'org.eclipse.egit.doc/cheatsheets/push.xml','AAAL13///zQ='),(164,46,'2010-12-22 15:02:19','d',1,'It\'s called indirectlry from a wizard by a call to getContainer().run(); what was missing was wrapping the call to MessageDialog into a Display.asyncExec()...','AAAL2H///7s=',2141,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL2H///7c='),(164,44,'2010-12-22 13:07:13','P',1,'BranchOperation locks resources and thus should not execute in UI thread.',NULL,2141,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL2H///7s='),(271,44,'2010-12-22 13:07:13','P',1,'Execute BranchOperation using getContainer.run',NULL,2141,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL2H///7o='),(271,46,'2010-12-22 15:01:33','d',1,'Already done.','AAAL2H///7o=',2141,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL2H///7Y='),(176,4,'2011-01-10 12:00:32','P',1,'this fails on filesystems which don\'t block file deletion when FileInputStream is open since the delete() call above already succeeds',NULL,2141,7,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/team/actions/BranchAndResetActionTest.java','AAAL2X///iw='),(178,49,'2010-12-17 11:23:11','P',1,'This try-catch block seams to be useless, none of used method declare check exception.',NULL,2144,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL13///64='),(178,108,'2010-12-17 11:49:13','d',1,'you are right. i will remove this if this the only reason against an acceptance of this patch.','AAAL13///64=',2144,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL13///6w='),(19,4,'2010-12-21 00:34:09','P',1,'style nit: trailing whitespace',NULL,2155,1,'/COMMIT_MSG','AAAL2H///+M='),(13,4,'2010-12-21 00:34:09','P',1,'style nits: trailing whitespace, inconsistent indentation',NULL,2155,1,'/COMMIT_MSG','AAAL2H///+Q='),(7,4,'2010-12-21 00:34:09','P',1,'start commit message with a short (<70 chars) summary line followed by a blank line otherwise its not nicely formatted by git command line tools.\n\nstyle nit: trailing whitespace',NULL,2155,1,'/COMMIT_MSG','AAAL2H///+U='),(19,108,'2010-12-21 20:18:51','d',1,'Done','AAAL2H///+M=',2155,1,'/COMMIT_MSG','AAAL2H///8Q='),(13,108,'2010-12-21 20:18:47','d',1,'Done','AAAL2H///+Q=',2155,1,'/COMMIT_MSG','AAAL2H///8U='),(7,108,'2010-12-21 20:18:37','d',1,'Done','AAAL2H///+U=',2155,1,'/COMMIT_MSG','AAAL2H///8Y='),(88,4,'2010-12-21 00:34:09','P',1,'missing extension point documentation',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///+A='),(40,4,'2010-12-21 00:34:09','P',1,'style nit: trailing whitespace\n\nmissing extension point documentation',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///+c='),(79,4,'2010-12-21 00:34:09','P',1,'missing extension point documentation',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///+E='),(33,4,'2010-12-21 00:34:09','P',1,'style nit: trailing whitespace\n\nmissing extension point documentation',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///+g='),(70,4,'2010-12-21 00:34:09','P',1,'missing extension point documentation',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///+I='),(26,4,'2010-12-21 00:34:09','P',1,'style nit: trailing whitespace\n\nmissing extension point documentation',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///+k='),(1,4,'2010-12-21 00:34:09','P',1,'missing license header\n\nPDE\'s extension point schema editor in helios can\'t open this and fails with a NPE',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///+o='),(55,4,'2010-12-21 00:34:09','P',1,'style nit: trailing whitespace\n\nmissing extension point documentation',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///+Y='),(9,4,'2010-12-21 00:34:09','P',1,'missing documentation',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///90='),(97,4,'2010-12-21 00:34:09','P',1,'missing extension point documentation',NULL,2155,1,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2H///98='),(1,4,'2010-12-21 00:34:09','P',1,'missing license header',NULL,2155,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///+0='),(12,4,'2010-12-21 00:34:09','P',1,'should be rather a link',NULL,2155,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///+s='),(14,4,'2010-12-21 00:34:09','P',1,'Primalary ? Sounds like a typo.',NULL,2155,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///+w='),(459,4,'2010-12-21 16:30:20','P',1,'you are right, FindBugs was complaining so I blindly copied that complaint here without using my brain','AAAL2H///9k=',2155,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///8o='),(459,4,'2010-12-21 00:34:09','P',1,'use StringBuilder to concatenate strings',NULL,2155,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///94='),(459,108,'2010-12-21 10:15:56','P',1,'mhh...I think the Java compiler use a StringBuilder internally','AAAL2H///94=',2155,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///9k='),(23,8,'2010-12-23 09:14:52','P',1,'Is this all that is needed for Mylyn?\n\ntrailing whitespace',NULL,2155,5,'/COMMIT_MSG','AAAL2H///4Q='),(23,108,'2010-12-29 21:01:34','d',1,'Done','AAAL2H///4Q=',2155,5,'/COMMIT_MSG','AAAL2X///64='),(8,8,'2010-12-24 00:37:40','P',1,'See those projects\' .settings','AAAL2H///3w=',2155,5,'org.eclipse.egilt.mylyn/.settings/org.eclipse.jdt.core.prefs','AAAL2H///3E='),(8,108,'2010-12-23 09:35:23','P',1,'What are the settings?','AAAL2H///4s=',2155,5,'org.eclipse.egilt.mylyn/.settings/org.eclipse.jdt.core.prefs','AAAL2H///3w='),(8,8,'2010-12-23 09:14:52','P',1,'Use same setting as the rest of the egit projects',NULL,2155,5,'org.eclipse.egilt.mylyn/.settings/org.eclipse.jdt.core.prefs','AAAL2H///4s='),(20,4,'2010-12-22 16:36:17','d',1,'export version 0.11.0 of this package',NULL,2155,5,'org.eclipse.egilt.mylyn/META-INF/MANIFEST.MF','AAAL2H///68='),(4,4,'2010-12-22 16:35:49','d',1,'typo in package name: s/egilt/egit/',NULL,2155,5,'org.eclipse.egilt.mylyn/META-INF/MANIFEST.MF','AAAL2H///7A='),(5,4,'2010-12-22 16:35:29','d',1,'Bundle-Version should be 0.11.0',NULL,2155,5,'org.eclipse.egilt.mylyn/META-INF/MANIFEST.MF','AAAL2H///7E='),(2,4,'2010-12-22 16:37:26','d',1,'I think you should rather put your own Copyright here',NULL,2155,5,'org.eclipse.egilt.mylyn/plugin.properties','AAAL2H///60='),(9,4,'2010-12-22 16:36:59','d',1,'please externalize Strings (see other egit plugins)',NULL,2155,5,'org.eclipse.egilt.mylyn/plugin.properties','AAAL2H///64='),(47,8,'2010-12-23 09:14:52','P',1,'needed?',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2H///40='),(20,8,'2010-12-23 09:14:52','P',1,'style nit-pick: trailng whitespace',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2H///44='),(4,8,'2010-12-23 09:14:52','P',1,'style nitpick: extra whitspace',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2H///48='),(55,8,'2010-12-23 09:14:52','P',1,'needed?',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2H///4w='),(21,4,'2010-12-22 16:40:27','d',1,'we don\'t use author tags, git tracks authors already and the copyright statements go into the license header',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2H///6s='),(2,4,'2010-12-22 16:39:04','d',1,'Put your own copyright here, Eclipse is eager to always track code provenance down to individual developers or companies.',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2H///6w='),(24,8,'2010-12-23 09:14:52','P',1,'trailing whitespace\nwe don\'d use the @author tag',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2H///4c='),(3,8,'2010-12-23 09:14:52','P',1,'extra whitespace,\ncopyright to yourself or employer',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2H///4g='),(52,8,'2010-12-23 09:14:52','P',1,'trailing whitespace',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2H///4Y='),(49,4,'2010-12-22 16:44:09','d',1,'maybe better rename to getCurrentActiveTask ?',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2H///6c='),(41,4,'2010-12-22 16:43:16','d',1,'temporary variable isn\'t needed here',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2H///6g='),(33,4,'2010-12-22 16:42:23','d',1,'style nit: we don\'t use curly braces around single line blocks',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2H///6k='),(21,4,'2010-12-22 16:41:22','d',1,'typo: s/integartion/integration/',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2H///6o='),(54,4,'2010-12-22 16:44:41','d',1,'s/activecontext/active context/',NULL,2155,5,'org.eclipse.egilt.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2H///6Y='),(32,108,'2010-12-23 09:35:23','P',1,'This I don\'t understand','AAAL2H///4k=',2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///30='),(25,108,'2010-12-23 09:35:23','P',1,'same as above','AAAL2H///4o=',2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///34='),(2,108,'2010-12-23 09:35:23','P',1,'oh...that is new for me. I will fix this later. But this informations aren\'t clearly in the ContributorGuide.','AAAL2H///5I=',2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///38='),(32,8,'2010-12-23 09:14:52','P',1,'...with platform specific line endings\ncan return null',NULL,2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///4k='),(25,8,'2010-12-23 09:14:52','P',1,'We don\'t use the @author tag',NULL,2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///4o='),(2,8,'2010-12-23 09:14:52','P',1,'1:something is missing here.\n\n2:We generally assign copyright to either the author or employer, depending on what is most appropriate.',NULL,2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///5I='),(31,4,'2010-12-22 16:46:37','d',1,'missing javadoc, which  resources are expected here ?',NULL,2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2H///6U='),(469,8,'2010-12-24 00:37:40','P',1,'if (provider instanceof ICommitMessageProvider) {\n   ....\n}\n// no else','AAAL2H///4E=',2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///3I='),(468,8,'2010-12-24 00:37:40','P',1,'MylynCommitMessageProvider.getMessage has two occurrences of \"return null\"...','AAAL2H///4A=',2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///3M='),(468,108,'2010-12-23 09:35:23','P',1,'I think that isn\'t possible. Mylyn has a fallback on workspace base. There is always a commit template.\nBut I can add a null check in the implementation of the ICommitMessageProvider','AAAL2H///4U=',2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///4A='),(469,108,'2010-12-23 09:35:23','P',1,'??? I throw a CoreException!','AAAL2H///5A=',2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///4E='),(456,108,'2010-12-23 09:35:23','P',1,'The interface i use need an array of IResource not IProject. So its clearer to use the correct type. I am not sure why mylyn uses IResource instead of IProject. I haven\'t seen any config options to configure commit templates on resource base.','AAAL2H///5E=',2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///4I='),(468,8,'2010-12-23 09:14:52','P',1,'what if the ICommitMessageProvider returns null?',NULL,2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///4U='),(469,8,'2010-12-23 09:14:52','P',1,'No exception of the extension is of the wrong type?',NULL,2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///5A='),(456,8,'2010-12-23 09:14:52','P',1,'Why are only projects included in the resources set? If only projects can be included, the type should be IProject, right?',NULL,2155,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2H///5E='),(4,15,'2010-12-24 07:47:01','P',1,'Should be org.eclipse.egit.mylyn',NULL,2155,6,'org.eclipse.egilt.mylyn/META-INF/MANIFEST.MF','AAAL2X////0='),(9,15,'2010-12-24 07:47:01','P',1,'Should this follow the version ranges of other EGit bundles? [3.4.0,4.0.0)',NULL,2155,6,'org.eclipse.egilt.mylyn/META-INF/MANIFEST.MF','AAAL2X////w='),(24,108,'2011-01-12 20:05:48','d',1,'There is no relationship. Mylyn provides templates at workspace and project level to add informations out of the bugtracker. This is often used to add more functionality to the bugtracker. For instance Jira can add the changelog to an issue.','AAAL2X///mk=',2155,9,'/COMMIT_MSG','AAAL2n////I='),(24,108,'2011-01-12 20:03:23','d',1,'Done','AAAL2X///nk=',2155,9,'/COMMIT_MSG','AAAL2n////M='),(21,108,'2011-01-12 20:03:18','d',1,'Done','AAAL2X///no=',2155,9,'/COMMIT_MSG','AAAL2n////Q='),(13,108,'2011-01-12 20:03:14','d',1,'Done','AAAL2X///ns=',2155,9,'/COMMIT_MSG','AAAL2n////U='),(24,4,'2011-01-08 22:58:07','P',1,'Git also can define commit templates. What\'s the intended relationship to Mylyn commit templates ? See git configuration parameter commit.template in [1].\n\n[1] http://www.kernel.org/pub/software/scm/git/docs/git-config.html',NULL,2155,9,'/COMMIT_MSG','AAAL2X///mk='),(24,8,'2011-01-08 08:46:14','P',1,'newline',NULL,2155,9,'/COMMIT_MSG','AAAL2X///nk='),(21,8,'2011-01-08 08:46:14','P',1,'newline',NULL,2155,9,'/COMMIT_MSG','AAAL2X///no='),(13,8,'2011-01-08 08:46:14','P',1,'newline',NULL,2155,9,'/COMMIT_MSG','AAAL2X///ns='),(20,108,'2011-01-12 19:51:21','d',1,'Done','AAAL2X///nc=',2155,9,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2n////4='),(20,4,'2011-01-08 22:58:07','P',1,'typo in package name: s/egilt/egit/',NULL,2155,9,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2X///nc='),(25,108,'2011-01-12 19:52:23','d',1,'Done','AAAL2X///nY=',2155,9,'org.eclipse.egit.mylyn/pom.xml','AAAL2n////0='),(25,4,'2011-01-08 22:58:07','P',1,'this is not egit ui but mylyn integration \n\nGit Team Provider (Mylyn Integration) (Incubation)',NULL,2155,9,'org.eclipse.egit.mylyn/pom.xml','AAAL2X///nY='),(33,108,'2011-01-12 19:53:19','d',1,'Done','AAAL2X///nU=',2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2n////s='),(40,108,'2011-01-12 19:53:16','d',1,'Done','AAAL2X///nQ=',2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2n////w='),(10,4,'2011-01-08 22:58:07','P',1,'typo in package name s/egilt/egit/',NULL,2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2X///ms='),(40,4,'2011-01-08 22:58:07','P',1,'style nit: trailing whitespace',NULL,2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2X///nQ='),(33,4,'2011-01-08 22:58:07','P',1,'style nit: trailing whitespace',NULL,2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/EgitMylynPlugin.java','AAAL2X///nU='),(39,108,'2011-01-12 19:59:32','d',1,'If you have take a look in the implementation of ContextChangeSet.getComment you will see there is a handling if the repository does not respond. I think setting always to true isn\'t a great risk. Perhaps we add a new preference for this later.','AAAL2X///nE=',2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2n////c='),(21,108,'2011-01-12 19:54:41','d',1,'Done','AAAL2X///nI=',2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2n////g='),(10,108,'2011-01-12 19:54:38','d',1,'Done','AAAL2X///mo=',2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2n////k='),(4,108,'2011-01-12 19:54:36','d',1,'Done','AAAL2X///nM=',2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2n////o='),(10,4,'2011-01-08 22:58:07','P',1,'typo in package name s/egilt/egit/',NULL,2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2X///mo='),(39,4,'2011-01-08 22:58:07','P',1,'if we always pass true here, what will happen if we are offline and cannot access the task repository currently ?',NULL,2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2X///nE='),(21,4,'2011-01-08 22:58:07','P',1,'typo: s/integartion/integration/',NULL,2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2X///nI='),(4,4,'2011-01-08 22:58:07','P',1,'style nit: unnecessary 2nd blank line',NULL,2155,9,'org.eclipse.egit.mylyn/src/org/eclipse/egilt/mylyn/internal/MylynCommitMessageProvider.java','AAAL2X///nM='),(91,108,'2011-01-12 20:00:43','d',1,'Done','AAAL2X///nA=',2155,9,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2n////Y='),(91,4,'2011-01-08 22:58:07','P',1,'I am not sure if this generic copyright note is ok',NULL,2155,9,'org.eclipse.egit.ui/schema/commitMessageProvider.exsd','AAAL2X///nA='),(21,108,'2011-01-12 20:06:00','d',1,'Done','AAAL2X///m4=',2155,9,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2n////A='),(2,108,'2011-01-12 20:05:57','d',1,'Done','AAAL2X///m8=',2155,9,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2n////E='),(25,108,'2011-01-12 20:06:03','d',1,'Done','AAAL2X///m0=',2155,9,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2n///+8='),(25,4,'2011-01-08 22:58:07','P',1,'style nit: we don\'t use author tags',NULL,2155,9,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2X///m0='),(21,4,'2011-01-08 22:58:07','P',1,'typo: s/Primarily/Primary/',NULL,2155,9,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2X///m4='),(2,4,'2011-01-08 22:58:07','P',1,'don\'t attribute copyright to Eclipse Egit Team, instead use your name and email or your company\n\nstyle nit: avoid 2nd unnecessary blank line',NULL,2155,9,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2X///m8='),(468,4,'2011-01-08 22:58:07','P',1,'this line looks a bit long, use code formatting options as specified in contributor guide and configured in project preferences\n\nstyle nit: there is an unnecessary blank before the semicolon',NULL,2155,9,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2X///mw='),(20,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///2Y=',2155,11,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2n///08='),(5,74,'2011-01-17 13:41:32','P',1,'align with EGit version',NULL,2155,11,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2n///10='),(19,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///1w=',2155,11,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2n///1A='),(14,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///1s=',2155,11,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2n///1E='),(5,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///10=',2155,11,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2n///1I='),(14,74,'2011-01-17 13:41:32','P',1,'resources seems not to be used',NULL,2155,11,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2n///1s='),(19,74,'2011-01-17 13:41:32','P',1,'Bundle-Localization: plugin is missing in order to get the properties resolved',NULL,2155,11,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2n///1w='),(20,74,'2011-01-17 13:41:32','P',1,'We should take care to split API vs non-API. Please export internal packages as x-internal.',NULL,2155,11,'org.eclipse.egit.mylyn/META-INF/MANIFEST.MF','AAAL2n///2Y='),(9,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///1g=',2155,11,'org.eclipse.egit.mylyn/plugin.properties','AAAL2n///00='),(2,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///1k=',2155,11,'org.eclipse.egit.mylyn/plugin.properties','AAAL2n///04='),(9,74,'2011-01-17 13:41:32','P',1,'I\'d call it Mylyn integration',NULL,2155,11,'org.eclipse.egit.mylyn/plugin.properties','AAAL2n///1g='),(2,74,'2011-01-17 13:41:32','P',1,'You\'re not Shawn',NULL,2155,11,'org.eclipse.egit.mylyn/plugin.properties','AAAL2n///1k='),(5,74,'2011-01-17 16:49:45','P',1,'As it\'s part of egit.ui, the id fits.','AAAL2n///2U=',2155,11,'org.eclipse.egit.mylyn/plugin.xml','AAAL2n///0w='),(5,74,'2011-01-17 13:41:32','P',1,'Should we use .mylyn in the extension point id to make the difference between EGit and the Mylyn extension more clear?',NULL,2155,11,'org.eclipse.egit.mylyn/plugin.xml','AAAL2n///2U='),(43,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///2M=',2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///0c='),(72,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///2A=',2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///0g='),(64,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///2E=',2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///0k='),(54,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///2I=',2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///0o='),(21,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///18=',2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///0s='),(21,74,'2011-01-17 13:41:32','P',1,'Should be named EGitMylynPlugin like all other EGit classes',NULL,2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///18='),(72,74,'2011-01-17 13:41:32','P',1,'Should use proper plugin id',NULL,2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///2A='),(64,74,'2011-01-17 13:41:32','P',1,'whitespace nit',NULL,2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///2E='),(54,74,'2011-01-17 13:41:32','P',1,'whitespace nit',NULL,2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///2I='),(43,74,'2011-01-17 13:41:32','P',1,'whitespace nit',NULL,2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/EgitMylynPlugin.java','AAAL2n///2M='),(23,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///14=',2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/internal/MylynCommitMessageProvider.java','AAAL2n///0Y='),(23,74,'2011-01-17 13:41:32','P',1,'Would put the SupressWarnings in a more narrow scope to only hide the use of ContextChangeSet',NULL,2155,11,'org.eclipse.egit.mylyn/src/org/eclipse/egit/mylyn/internal/MylynCommitMessageProvider.java','AAAL2n///14='),(4,74,'2011-01-17 16:49:45','P',1,'Done','AAAL2n///1o=',2155,11,'org.eclipse.egit.ui/plugin.xml','AAAL2n///0U='),(4,74,'2011-01-17 13:41:32','P',1,'We should mark this as internal ext point for now, i don\'t see the maturity for this to be API yet',NULL,2155,11,'org.eclipse.egit.ui/plugin.xml','AAAL2n///1o='),(13,74,'2011-01-17 16:49:45','P',1,'Doesn\'t matter, class will be internal anyway before 1.0','AAAL2n///2Q=',2155,11,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2n///0Q='),(13,74,'2011-01-17 13:41:32','P',1,'Javadoc reference to internal classes?',NULL,2155,11,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/ICommitMessageProvider.java','AAAL2n///2Q='),(496,74,'2011-01-17 13:41:32','P',1,'Please use EgitMylynPlugin to handle errors in this bundle',NULL,2155,11,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///1c='),(502,74,'2011-01-17 13:41:32','P',1,'Please use EgitMylynPlugin to handle errors in this bundle',NULL,2155,11,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///1Y='),(7,4,'2010-12-20 15:14:05','P',1,'I don\'t understand this commit message, it\'s a bit too short ;-)',NULL,2156,1,'/COMMIT_MSG','AAAL13///1c='),(301,4,'2010-12-20 23:23:45','P',1,'tag as TODO',NULL,2157,2,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/synchronize/SynchronizeViewTest.java','AAAL13///z8='),(538,1,'2010-12-20 16:25:04','P',1,'Whoops.  My fault.  Thanks for fixing this.',NULL,2158,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/T0003_Basic.java','AAAL13///zs='),(886,44,'2010-12-21 16:04:15','d',1,'Done','AAAL2H///9A=',2162,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2H///84='),(886,4,'2010-12-21 15:58:49','P',1,'could be more explicit :\n\n{0} does not exist in the working tree',NULL,2162,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2H///9A='),(14,46,'2011-02-01 08:24:05','P',1,'Done','AAAL2n//+50=',2163,8,'/COMMIT_MSG','AAAL2n//+4A='),(14,4,'2011-01-31 22:23:06','P',1,'use empty lines to separate paragraphs',NULL,2163,8,'/COMMIT_MSG','AAAL2n//+50='),(664,46,'2011-02-01 08:24:05','P',1,'I verified that this is the formatting the configured code formatter produces.','AAAL2n//+6A=',2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/SimpleConfigurePushDialog.java','AAAL2n//+3o='),(154,46,'2011-02-01 08:24:05','P',1,'Done','AAAL2n//+6E=',2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/SimpleConfigurePushDialog.java','AAAL2n//+3s='),(1,46,'2011-02-01 08:24:05','P',1,'Done','AAAL2n//+6I=',2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/SimpleConfigurePushDialog.java','AAAL2n//+3w='),(664,4,'2011-01-31 22:23:06','P',1,'formatting looks strange here',NULL,2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/SimpleConfigurePushDialog.java','AAAL2n//+6A='),(154,4,'2011-01-31 22:23:06','P',1,'either add javadoc or remove it completely',NULL,2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/SimpleConfigurePushDialog.java','AAAL2n//+6E='),(1,4,'2011-01-31 22:23:06','P',1,'missing license header',NULL,2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/SimpleConfigurePushDialog.java','AAAL2n//+6I='),(634,46,'2011-02-01 08:24:05','P',1,'Done','AAAL2n//+5w=',2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2n//+3c='),(1009,46,'2011-02-01 08:24:05','P',1,'Oops, Parameter of course... Done.','AAAL2n//+54=',2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2n//+3g='),(657,46,'2011-02-01 08:24:05','P',1,'Done','AAAL2n//+58=',2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2n//+3k='),(1009,4,'2011-01-31 22:23:06','P',1,'did you want to add a parameter here ? Or is this trailing whitespace',NULL,2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2n//+54='),(657,4,'2011-01-31 22:23:06','P',1,'typo: s/on/in/',NULL,2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2n//+58='),(634,4,'2011-01-31 22:23:06','P',1,'I think this is a typo s/not found in remote Repository/not found in local repository/\n\non Fetch the remote tracking branch is in the local repository',NULL,2163,8,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2n//+5w='),(197,1,'2010-12-22 23:49:22','P',1,'So Jetty 7.2 dropped the setConstraintMapping(ConstraintMapping[]) method signature?\n\nShouldn\'t they be calling that Jetty 8 since they removed a public method?',NULL,2171,1,'org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServer.java','AAAL2H///50='),(498,102,'2010-12-29 21:20:09','d',1,'Cool - yeah, I only kept it like that to make the diff smaller, didn\'t realise Gerrit would recognise it correctly.','AAAL2X///8I=',2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///58='),(500,102,'2010-12-29 21:17:52','d',1,'Yup, fair enough','AAAL2X///78=',2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///6Q='),(1098,1,'2010-12-29 20:35:51','P',1,'I don\'t think this class is necessary.  Within a single resolveDeltas() invocation there can be only one type.  So make type a local variable of resolveDeltas() which is assigned in the part of the switch that does the 4 base types (OBJ_COMMIT, OBJ_TREE, OBJ_BLOB, OBJ_TAG) and pass it to anyone who needs the type... which is only the digestUsing routine.  But that can be put back inline into the resolveDeltas() routine.\n\nThat drops 1 object allocation per object processed during resolveDeltas(), which should help memory usage and decrease GC activity.  Its significant enough, and the code is probably actually shorter this way too, so I think it makes sense to drop this type.',NULL,2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///70='),(591,1,'2010-12-29 20:35:51','P',1,'Instead of allocating new chain objects, we could sort the two lists into a single linked list and return the UnresolvedDelta that is at the start of it.  Something like:\n\n  if (a == null)\n    return b;\n  if (b == null)\n    return a;\n\n  UnresolvedDelta first = null;\n  UnresolvedDelta last = null;\n\n  while (a != null || b != null) {\n    UnresolvedDelta n;\n    if (b == null || (a != null && a.position < b.position)) {\n      n = a;\n      a = a.next;\n    } else {\n      n = b;\n      b = b.next;\n    }\n\n    if (last != null) {\n      last.next = n;\n      last = n;\n    } else {\n      first = n;\n      last = n;\n    }\n    n.next = null;\n\n    return first;\n  }\n\nThat gives us a smaller DeltaVisit object, and simplifies code elsewhere probably by not needing both \"a\" and \"b\" chains.\n\nFor most packs we\'re using OFS_DELTA format these days, so most delta chains will be only of the \"b\" variant and take the fast path above anyway.  We should see only REF_DELTA on thin packs during fixThinPack(), and they won\'t have OFS_DELTA dependencies so they won\'t typically have a \"b\" variant, and use the fast path above anyway.  Basically its rather rare to have both chains, so the slow path to rebuild a single linked list isn\'t that common.',NULL,2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///74='),(500,1,'2010-12-29 20:35:51','P',1,'Since the initialDelta is only used to prime the stack, I would instead call the argument \"dv\" and reassign to it in the while loop.  That way we only have one type of DeltaVisit (the active object) in scope and its less likely we\'ll use the wrong one.\n\nSometimes assigning to an argument is evil, and sometimes its good.  I think this sort of algorithm is one of those times where its good to reuse the argument variable.',NULL,2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///78='),(1087,1,'2010-12-29 20:35:51','P',1,'Why bother with this type?  Just use UnresolvedDelta for the base case that bootstraps the resolveDeltas() method.\n\nUsing this type inside of UnresolvedDelta increases the memory usage during the scanning of the pack by at least 12 bytes on 32 bit JVMs per object.  Scanning 1 million deltas costs us 12 more MB of memory.  On a 64 bit JVM we could be looking at more than 24 MB here.  I don\'t think that is a trivial change.\n\nI\'m OK with the DeltaVisit type because its so transient, and you need it for the stack management.  But its not OK to make a massive increase to the relatively persistant unresolved delta chains.',NULL,2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///7o='),(1126,1,'2010-12-29 20:35:51','P',1,'Since we bootstrap resolveDeltas() with no data (just a position) if you make this non-final we can assign it during the base case when the type is also discovered and stored into the local variable.',NULL,2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///7s='),(1128,1,'2010-12-29 20:35:51','P',1,'If you do the list rebuild above like I suggest, this is only one list of UnresolvedDelta type.\n\nChange the field to be non-final, and update it when you pop the delta off.  I think you can find a way to leave the DeltaVisit on the stack during the loop and only pop it when the UnresolvedDelta variable goes null at the end.  If its still non-null (because there is another delta to process) you can just update the field and leave the stack alone.\n\nThat should also further reduce memory allocations and GC activity, because we aren\'t re-creating the current DeltaVisit when we need to remember another delta that needs this base information.',NULL,2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///7w='),(502,1,'2010-12-29 20:35:51','P',1,'Style-nit: Spaces around =.',NULL,2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///8A='),(499,1,'2010-12-29 20:35:51','P',1,'Instead of Stack (which uses synchronized), we would prefer to use ArrayList<DeltaVisit> with stack.remove(stack.size()-1) for the pop operation.  This way the JIT doesn\'t need to work to optimize out the locking.\n\nFWIW though, this is such a simple usage that I would make the stack myself and avoid all of the extra work that ArrayList (or Stack/Vector) impose on each operation:\n\n  private void resolveDeltas(DeltaVisit visit) ... {\n    while (visit != null) {\n      visit.data = ...;\n\n      visit.nextChild = firstChildOf(oe);\n      visit = nextVisit(visit);\n    }\n  }\n\n  private static DeltaVisit nextVisit(DeltaVisit visit) {\n    // If our parent has no more children, discard.\n    while (visit.parent != null && visit.parent.nextChild == null)\n      visit.parent = visit.parent.parent;\n\n    do {\n      UnresolvedDelta childId = visit.nextChild;\n\n      if (childId != null) {\n        visit.nextChild = childId.next;\n        return new DeltaVisit(childId, visit);\n      }\n\n      visit = visit.parent;\n    } while (visit != null);\n  }\n\n  private static class DeltaVisit {\n    final UnresolvedDelta id;\n    DeltaVisit parent;\n\n    byte[] data;\n    UnresolvedDelta nextChild;\n  }\n\nI like this solution because its still fairly short, but saves a lot of overhead.  It also give us a nice tail-recursion case to discard an object as soon as its last child is inflated, reducing the memory usage for long delta chains that have only 1 object at each level.',NULL,2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///8E='),(498,1,'2010-12-29 20:35:51','P',1,'Style-nit:  Method indentation is wrong.  The entire body needs to be shifted right one more level of indentation.  Gerrit will correctly see its a shift right and should display the change correctly with intraline difference enabled.',NULL,2172,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///8I='),(22,102,'2010-12-30 09:39:22','P',1,'Should drop this stat from the commit message until the update has been re-perf-tested!',NULL,2172,3,'/COMMIT_MSG','AAAL2X///3o='),(22,102,'2010-12-30 23:40:59','P',1,'It\'s a little bit faster!',NULL,2172,4,'/COMMIT_MSG','AAAL2X///0Y='),(1141,1,'2010-12-31 00:49:13','P',1,'Good change making this an instance member, thanks.','AAAL2X///0U=',2172,4,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///0E='),(1141,102,'2010-12-30 23:40:59','P',1,'made this a non-static method, putting it onto DeltaVisit where it looks a bit tider',NULL,2172,4,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///0U='),(1134,1,'2010-12-31 02:40:23','P',1,'Whoops, you caught this one.  This constructor could have been private since its only invoked by the DeltaVisit class.  Its just habit of mine to typically avoid the private modifier on a private inner class\'s methods/constructors, because the enclosing class can still access them anyway via synthetic accessor methods inserted by the compiler.',NULL,2172,5,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///zI='),(1140,1,'2010-12-31 02:40:23','P',1,'Right.  I didn\'t want to pay the penalty for the synthetic accessor method to jump from the enclosing IndexPack class into the DeltaVisit.next() method each time we called next().  Since DeltaVisit is already private, this method is effectively private enough to IndexPack that it doesn\'t need to be further protected.','AAAL2X///zs=',2172,5,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///zM='),(1140,102,'2010-12-31 00:55:40','P',1,'Fair enough, this method is called from outside the DeltaVisit class',NULL,2172,5,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///zs='),(1134,102,'2010-12-31 00:55:40','P',1,'This constructor is only called from within the DeltaVisit class, wasn\'t private appropriate?',NULL,2172,5,'org.eclipse.jgit/src/org/eclipse/jgit/transport/IndexPack.java','AAAL2X///zw='),(135,1,'2010-12-29 18:33:55','P',1,'We should do these in a directory other than the system temp directory.',NULL,2174,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/FileSnapshotTest.java','AAAL2X///+E='),(65,8,'2010-12-30 13:35:20','P',1,'Done-ish','AAAL2X///9w=',2175,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java','AAAL2X///4c='),(65,1,'2010-12-29 19:10:06','P',1,'I would put the getAbsolutePath() part here since we want it as a String.',NULL,2175,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java','AAAL2X///9w='),(203,8,'2010-12-30 13:35:20','P',1,'Done','AAAL2X///90=',2175,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///4g='),(203,1,'2010-12-29 19:10:06','P',1,'Why not return java.io.File here?\n\nI think searchPath is probably the more common name for this method.  Its searching the path for one of the lookFor arguments.',NULL,2175,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///90='),(208,1,'2010-12-30 20:35:43','P',1,'OK, I think I finally understand why you want to do getAbsoluteFile() here.  If we use the File parameter to exec() the child process will cd into the new location and then run the executable.  If the executable name wasn\'t an absolute path, then execution would fail later.\n\nSo this makes sense to do as part of searchPath and just make it less likely we\'ll run into that error.',NULL,2175,2,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///1o='),(207,1,'2010-12-30 20:35:43','P',1,'Style-nit: I\'d prefer dropping the curly braces, but I\'ll submit this as-is.',NULL,2175,2,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///1s='),(238,8,'2010-12-30 13:35:06','P',1,'Done','AAAL2X///9o=',2176,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///4k='),(228,8,'2010-12-30 13:35:06','P',1,'Done','AAAL2X///9k=',2176,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///4o='),(228,1,'2010-12-29 19:13:09','P',1,'Why isn\'t this static?  And why is dir final, but command and encoding aren\'t?',NULL,2176,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///9k='),(238,1,'2010-12-29 19:13:09','P',1,'We also need to do:\n\n  p.getErrorStream().close();\n\nI think the original version forgot to do that.  :-(',NULL,2176,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///9o='),(10,1,'2010-12-29 19:28:01','P',1,'s/instaled/installed/ (two l\'s)',NULL,2177,1,'/COMMIT_MSG','AAAL2X///9c='),(15,1,'2010-12-29 19:28:01','P',1,'s/^Bug /Bug: / (missing :)',NULL,2177,1,'/COMMIT_MSG','AAAL2X///9Y='),(82,8,'2010-12-30 13:34:53','P',1,'Done','AAAL2X///8c=',2177,1,'org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java','AAAL2X///5c='),(82,1,'2010-12-29 19:28:01','P',1,'Typo, should be systemGitConfig.',NULL,2177,1,'org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/MockSystemReader.java','AAAL2X///8c='),(305,8,'2010-12-30 13:34:53','P',1,'Done','AAAL2X///8g=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL2X///5Q='),(197,8,'2010-12-30 13:34:53','P',1,'Done','AAAL2X///8k=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL2X///5U='),(98,8,'2010-12-30 13:34:53','P',1,'Done','AAAL2X///8o=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL2X///5Y='),(305,1,'2010-12-29 19:28:01','P',1,'Should we check for systemConfig.isOutdated() as well?',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL2X///8g='),(197,1,'2010-12-29 19:28:01','P',1,'I would prefer systemConfigInvalid for the translation text name.',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL2X///8k='),(98,1,'2010-12-29 19:28:01','P',1,'I would prefer \"systemConfig\" as the field name.',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL2X///8o='),(51,8,'2010-12-30 13:34:53','P',1,'Dropped the which/whence stuff in the base clas.','AAAL2X///9E=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java','AAAL2X///5A='),(50,8,'2010-12-30 13:34:53','P',1,'Done','AAAL2X///9I=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java','AAAL2X///5E='),(51,1,'2010-12-29 19:28:01','P',1,'I really think you should try this first in the base class, rather than running which and whence.',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java','AAAL2X///9E='),(50,1,'2010-12-29 19:28:01','P',1,'This needs an @Override annotation.',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java','AAAL2X///9I='),(86,8,'2010-12-30 13:34:53','P',1,'Compromise: Dropping getAbsoluteFile since scanPath already does it. That make the line shorter and does not need wrapping.','AAAL2X///9A=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java','AAAL2X///48='),(86,1,'2010-12-29 19:28:01','P',1,'This is line-wrapping ugly.  I\'d prefer (assuming you change scanPath to return File):\n\n  File gitExe = scanPath(...);\n  if (gitExe != null) {\n    gitExe = gitExe.getAbsoluteFile();\n    File bin = gitExe.getParentFile();  // discard \"git.exe\"\n    return bin.getParentFile();  // discard \"bin\"\n  }',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java','AAAL2X///9A='),(265,8,'2010-12-30 13:34:53','P',1,'Done','AAAL2X///9Q=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///5I='),(274,8,'2010-12-30 13:34:53','P',1,'Done\n\nI think it makes sense on cygwin too, at least. With current msysgit it doesn\'t help becuase if bash is in the path, so is git.','AAAL2X///9M=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///5M='),(274,1,'2010-12-29 19:28:01','P',1,'This fallback makes sense... but should only be necessary on Mac OS X.  Should we special case this?\n\n  if (w == null && isMacOSX())',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///9M='),(265,1,'2010-12-29 19:28:01','P',1,'If we have scanPath() above, why do we need to run the shell in order to find it?  Why not just use scanPath()?',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///9Q='),(81,8,'2010-12-30 13:34:53','P',1,'The UI should tell the user and prevent this in a better manner. If the UI forgets, then the user will know.','AAAL2X///8s=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java','AAAL2X///40='),(80,8,'2010-12-30 13:34:53','P',1,'Done','AAAL2X///80=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java','AAAL2X///44='),(91,8,'2010-12-30 13:34:53','P',1,'Done','AAAL2X///88=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java','AAAL2X///4s='),(87,8,'2010-12-30 13:34:53','P',1,'Done','AAAL2X///84=',2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java','AAAL2X///4w='),(80,1,'2010-12-29 19:28:01','P',1,'Please use {} around the return statement, since its multiple lines for the inner class that is overriding the load() routine.',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java','AAAL2X///80='),(87,1,'2010-12-29 19:28:01','P',1,'This is wrapping ugly, maybe resolve the file first, and then resolve the gitconfig.  That way a symlinked /etc/gitconfig is correctly followed if it came from Cygwin.\n\n  File etc = new File(fs.resolve(prefix, \"etc\"));\n  File config = new File(fs.resolve(etc, \"config\"));\n  return new FileBasedConfig(parent, config, fs);',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java','AAAL2X///84='),(91,1,'2010-12-29 19:28:01','P',1,'Shouldn\'t this be:\n\n  fs.resolve(null, \"/etc/gitconfig\")\n\nBut why are we doing this fallback here?  If the system config cannot be found, this fallback only works on POSIX systems that have had Git installed by the OS distribution.  In theory we should have found the config correctly via the FS_POSIX class anyway.',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java','AAAL2X///88='),(81,1,'2010-12-29 19:28:01','P',1,'Do we also need to override save() to prevent an NPE when an (invalid) call to save() is made?',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java','AAAL2X///8s='),(82,1,'2010-12-29 19:28:01','P',1,'Throws clauses aren\'t necessary here since the body does nothing.',NULL,2177,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java','AAAL2X///8w='),(257,1,'2010-12-30 20:59:05','P',1,'I preferred making this abstract, and putting the bash executions down into the FS implementation that might actually use it.',NULL,2177,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL2X///1E='),(142,46,'2010-12-30 09:06:08','P',1,'&Filter conflicts with &Fill Paragraphs, perhaps we should change the other one to Fill &Paragraphs',NULL,2186,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2X///34='),(142,4,'2010-12-30 13:30:55','P',1,'Done','AAAL2X///34=',2186,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL2X///3E='),(10,46,'2010-12-30 08:30:18','P',1,'Please add bug 333203',NULL,2187,1,'/COMMIT_MSG','AAAL2X///4Q='),(11,1,'2010-12-31 21:15:15','d',1,'Yea, I agree.  The move to JUnit 4 was stupid.  But its done now.  Thanks for following through with it.',NULL,2196,1,'/COMMIT_MSG','AAAL2X///yQ='),(46,1,'2010-12-31 21:17:20','d',1,'I\'d prefer to not import *, ever.  But this is hard to do with an automated regex replacement.  I\'ll try fixing this with Eclipse\'s Organize Imports and see if we can resolve it quickly.',NULL,2196,1,'org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java','AAAL2X///yM='),(33,1,'2010-12-31 21:18:52','d',1,'This is missing a version number on the package import.',NULL,2196,1,'org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF','AAAL2X///yI='),(27,1,'2010-12-31 21:19:33','d',1,'Missing version number on the import.',NULL,2196,1,'org.eclipse.jgit.junit/META-INF/MANIFEST.MF','AAAL2X///yE='),(65,1,'2010-12-31 21:26:09','d',1,'Technically you need to throw the throwable (and catch it) before you can get the stack trace.',NULL,2196,1,'org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/JGitTestUtil.java','AAAL2X///x0='),(83,1,'2010-12-31 21:20:40','d',1,'Typo in message.',NULL,2196,1,'org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/JGitTestUtil.java','AAAL2X///x4='),(75,1,'2010-12-31 21:20:34','d',1,'Typo in message.',NULL,2196,1,'org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/JGitTestUtil.java','AAAL2X///x8='),(91,1,'2010-12-31 21:20:16','d',1,'Typo in the message.',NULL,2196,1,'org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/JGitTestUtil.java','AAAL2X///yA='),(7,5,'2011-01-10 15:46:09','P',1,'Done','AAAL2X///jY=',2199,1,'/COMMIT_MSG','AAAL2X///h8='),(7,1,'2011-01-10 01:25:32','P',1,'Style-nit: Please capitalize the beginning of the short summary.',NULL,2199,1,'/COMMIT_MSG','AAAL2X///jY='),(646,5,'2011-01-10 15:46:09','P',1,'Done','AAAL2X///jQ=',2199,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL2X///g0='),(544,5,'2011-01-10 15:46:09','P',1,'right, calling it DIFFER_BY_METADATA sounds more consistent. I\'ll do that','AAAL2X///jM=',2199,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL2X///h4='),(544,1,'2011-01-10 01:25:32','P',1,'If I read the code below right, this NOT_EQUAL never occurs due to modification timestamp, so we probably shouldn\'t mention it here.\n\nI wonder if we should call this DIFFER_BY_METADATA, to match DIFFER_BY_TIMESTAMP below.',NULL,2199,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL2X///jM='),(646,1,'2011-01-10 01:25:32','P',1,'This should be an IllegalStateException or some other sort of RuntimeException.  If there is a new value added to the enum, we should fail rather than returning true.',NULL,2199,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL2X///jQ='),(648,5,'2011-01-21 00:11:59','P',1,'yes, right. This string may pop up until to the user - but it would be a real developers fault because he has not covered all possible cases. But I guess it doesn\'t hurt to have this in.','AAAL2n///lM=',2199,2,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL2n///k0='),(648,2,'2011-01-20 22:53:11','d',1,'Most eclipse.org projects don\'t translate errors like that...','AAAL2n///lM=',2199,2,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL2n///lE='),(648,8,'2011-01-20 20:29:37','P',1,'Isn\'t translating internal programmer errors a bit extreme?',NULL,2199,2,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL2n///lM='),(32,4,'2011-01-09 23:35:10','P',1,'this is a misleading variable name, how about \"revert\" ?',NULL,2202,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/RevertHandler.java','AAAL2X///ko='),(726,1,'2011-01-06 17:48:33','P',1,'Done','AAAL2X///qw=',2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///pc='),(282,1,'2011-01-06 17:48:33','P',1,'Done','AAAL2X///rM=',2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///pg='),(738,1,'2011-01-06 17:48:33','P',1,'Done','AAAL2X///qs=',2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///pY='),(734,1,'2011-01-06 17:28:35','P',1,'I didn\'t want to use BinaryDelta.apply(data,cmds) here because I didn\'t want an OOM caused by a failed allocation for an IllegalArgumentException inside of BinaryDelta.apply() to be trapped and treated the same as an OOM caused by trying to allocate a byte array that is too large for our current heap.\n\nCatching OOM is usually considered to be VERY BAD.  If your heap is really out of memory, your whole VM is about to fall over for most Java applications.  I know that\'s true for Eclipse.  :-)\n\nThus I\'ve been very careful to only trap OOM on a very small number of byte array allocations, where the size of the array might be larger than the maximum heap, and that will trigger an OOM, but its not really an OutOfMemoryError, because there is still plenty of heap to go around.  E.g. consider the case of streamFileThreshold being set to 2047m, an object of 640m in size, and a max heap of 256m.  Even if I have 200m free in the heap, I cannot allocate that 640m object as a byte array, and the resulting OOM from that alloc isn\'t really an OOM.  The heap is still fine.\n\nBut an OOM when we are about to throw IllegalArgumentException, well, that\'s really bad.  If we cannot perform the allocation for an exception that we want to throw up the stack, we\'re toast.  Our heap is already out of space and there\'s no way we\'re going to be able to recover.  We shouldn\'t be trapping that exception.','AAAL2X///qU=',2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///qA='),(726,1,'2011-01-06 17:28:35','P',1,'What Robin said.  If decompress returns null, we caught an OutOfMemoryError above.  That means the allocation for the array failed.  But we need to do another allocation (hopefully smaller!) to create the large delta object loader.  data (our base object) is however allocated and held by a local variable.\n\nThe Java standard doesn\'t define what happens here.  An implementation may leave the data variable live until after the delta.large() call returns its value.  That means the GC can\'t reclaim that space.  But its dead.  Explicitly nulling it out helps to ensure its really dead.\n\nIf the compiler can deduce that the variable is dead and discard the local from the live set, it should also be able to deduce that the assignment to null is unnecessary, and drop that instruction.  So this shouldn\'t hurt a smart compiler, and helps a simpler one.','AAAL2X///qM=',2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///qE='),(617,102,'2011-01-05 23:39:37','P',1,'I\'ve upload a patch set which ties to decrease the size of the load() method (mostly by breaking it into smaller methods), and removes a couple of lines I think are unnecessary.','AAAL2X///vM=',2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///qk='),(726,8,'2011-01-06 06:40:43','P',1,'Ideally the compiler will figure that out and effectively remove the local variables, but I think they typically retain data until delta.large() returns, which may cause more memory to be used.','AAAL2X///uQ=',2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///qM='),(738,8,'2011-01-05 23:00:13','P',1,'Comment the reason for this inline',NULL,2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///qs='),(734,102,'2011-01-05 23:50:27','P',1,'It\'s possible to avoid a couple of lines of boilerplate around declaring the byte[] array \'result\' - compare with the equivalent code in patch set 5, where it just uses the BinaryDelta.apply(data, cmds) method, and has the same effect regarding the OOM check',NULL,2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///qU='),(726,8,'2011-01-05 23:00:13','P',1,'Comment the reason for this inline',NULL,2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///qw='),(282,8,'2011-01-05 23:00:13','P',1,'A small comment on this logic might enlighten, since you are\nnot just ignoring the exception,',NULL,2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///rM='),(726,102,'2011-01-05 23:39:37','P',1,'As we\'re about to leave method scope, it can\'t be necessary to set the method-scoped variable \'data\' to null',NULL,2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///uQ='),(623,1,'2011-01-03 10:38:42','P',1,'Its unfortunate we have to initialize type at all.  The code flow should ensure this value is overwritten before it is ever read.',NULL,2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///vI='),(617,1,'2011-01-03 10:38:42','P',1,'I hate the fact that load() is now 140 lines of code, its too long to read in a single screen without scrolling, but I can\'t find a clean way to break the search loop away from the delta application loop while also avoiding an unnecessary ObjectLoader allocation once the base is found.  I\'d rather take the slightly longer method over the additional object allocation.',NULL,2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///vM='),(643,1,'2011-01-03 10:38:42','P',1,'I realized not long after I pushed the prior version that I can simplify some of the conditions around whole objects, and reduce a few unnecessary compares as we move out of the whole object case into applying the delta chain to produce the result.  Hence, patch set 4.',NULL,2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///vQ='),(712,1,'2011-01-03 10:38:42','P',1,'Eclipse 3.6.1\'s JDT thinks \"delta\" can be null even though its impossible here, so clearly the code flow isn\'t the simplest.  But it is faster than the prior iterations.',NULL,2205,4,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///vU='),(687,1,'2011-01-06 17:40:59','P',1,'I don\'t like this because the entire delta chain *and* the root base object are held for the entire chain being applied.  There is now way to clear those variables out until after the entire chain is applied.\n\nThe delta chain frames aren\'t very big, so the fact that they cannot be discarded as the deltas are applied is probably not a big deal.\n\nBut the root base... that\'s probably large, and we should be able to discard it as soon as we have patched the delta onto it.  \n\nThere is no assurance that the runtime will discard delta and data from this method frame as being non-live when the applyDeltas method is invoked.  Because of that we need to assume the runtime is doing the simple thing, keeping these live until after applyDeltas returns, in which case the root base is still live... and we need to clear it ourselves when its dead.\n\nThe only way I can think to do that is to keep it all in one method like I did in patch set 4.  Or allocate a new little helper object that holds these variables in it, and gets passed into applyDeltas by reference, so the variables are in the heap rather than on the stack.\n\nI\'d like to avoid an allocation for the somewhat common case of a delta that gets a hit for its base in the DeltaBaseCache, so that means the longer load method like I had in patch set 4.',NULL,2205,5,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///p0='),(660,1,'2011-01-06 17:40:59','P',1,'I dislike this approach because on delta cases (which are insanely common, most objects are deltas) we need to perform two compares to determine the type of delta.\n\nDuplicating the code under both branches meant yea, its duplicated instructions, but at least we only had one branch to carry out instead of two.',NULL,2205,5,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///p4='),(720,1,'2011-01-06 17:40:59','P',1,'Style-nit: Trailing whitespace.',NULL,2205,5,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///po='),(743,1,'2011-01-06 17:40:59','P',1,'This is catching an OOM incurred while trying to allocate an IllegalArgumentException if the base doesn\'t match the command stream.  That\'s a really serious error that I don\'t want caught (see my comments on patch set 4).',NULL,2205,5,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///ps='),(701,1,'2011-01-06 17:40:59','P',1,'Style-nit: No point in assigning to the argument when we are just going to return this as the result.',NULL,2205,5,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/PackFile.java','AAAL2X///pw='),(66,9,'2011-01-05 06:47:00','P',1,'Actually, when splitting the old commit I by mistake did this change in the wrong commit i.e. in the commit where the note merge was done.','AAAL2X///tg=',2207,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/Note.java','AAAL2X///s8='),(61,9,'2011-01-05 06:47:00','P',1,'Hmm.. how would that fit with the:\n\n public void set(AnyObjectId noteOn, ObjectId noteData)\n\nfrom the NoteMap interface? Should this method then become\n\n public void add(Note note)','AAAL2X///tc=',2207,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/Note.java','AAAL2X///tA='),(61,1,'2011-01-04 18:58:11','P',1,'We probably should go ahead and make the constructor public.',NULL,2207,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/Note.java','AAAL2X///tc='),(66,1,'2011-01-04 18:58:11','P',1,'We also need to make this public.  Otherwise the client of the Iterator<Note> cannot see the blob that is attached to the note.',NULL,2207,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/Note.java','AAAL2X///tg='),(383,15,'2011-01-19 13:11:19','P',1,'If anything, we should be using the jsch repo from http://jsch.sourceforge.net/maven2/ . It\'s worth noting that there is a discussion on jsch-users regarding deploying the latest version on maven central.',NULL,2211,2,'pom.xml','AAAL2n///qE='),(9,4,'2011-01-08 23:37:55','P',1,'I think we want all footers in last paragraph, also add colon\n\ns/Bug 333480\\n\\n/Bug: 333480\\n/',NULL,2213,3,'/COMMIT_MSG','AAAL2X///l4='),(26,4,'2011-01-10 00:03:58','P',1,'typo in class name s/AmbiguosBranchDialog/AmbiguousBranchDialog/',NULL,2217,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AmbiguosBranchDialog.java','AAAL2X///kM='),(2,4,'2011-01-10 00:03:58','P',1,'missing license header',NULL,2217,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AmbiguosBranchDialog.java','AAAL2X///kQ='),(7,4,'2011-01-19 00:09:17','P',1,'typo: s/ambigous/ambiguous/',NULL,2217,3,'/COMMIT_MSG','AAAL2n///tQ='),(35,4,'2011-01-19 00:09:17','P',1,'typo: s/Ambigous/Ambiguous/',NULL,2217,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AmbigousBranchDialog.java','AAAL2n///tM='),(151,8,'2011-01-15 23:42:27','P',1,'If I don\'t change the braces peopl can still blame the original author.\n\nClearning up. Done.','AAAL2X///j8=',2218,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AbstractHistoryCommanndHandler.java','AAAL2n///3c='),(148,8,'2011-01-15 23:42:27','P',1,'This works as before. The code has just been moved. \nWill fix.','AAAL2X///j4=',2218,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AbstractHistoryCommanndHandler.java','AAAL2n///3Y='),(148,4,'2011-01-10 00:13:41','P',1,'if refPrefix would be \"refs/remotes/origin/\" would this still yield local branches ?',NULL,2218,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AbstractHistoryCommanndHandler.java','AAAL2X///j4='),(151,4,'2011-01-10 00:13:41','P',1,'style nit: no braces around single line block',NULL,2218,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AbstractHistoryCommanndHandler.java','AAAL2X///j8='),(141,4,'2011-01-10 00:13:41','P',1,'missing double quote ? \"refs/heads/\"',NULL,2218,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AbstractHistoryCommanndHandler.java','AAAL2X///kA='),(137,4,'2011-01-10 00:13:41','P',1,'typo: s/ambiguos/ambiguous/',NULL,2218,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/command/AbstractHistoryCommanndHandler.java','AAAL2X///kE='),(132,9,'2011-01-10 09:01:39','P',1,'Done','AAAL2X///oY=',2219,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/nls/NLSTest.java','AAAL2X///jA='),(132,1,'2011-01-07 16:27:11','P',1,'These threads are still running after the test ends.  We should shutdown the pool and wait for them to terminate before leaving the test method.',NULL,2219,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/nls/NLSTest.java','AAAL2X///oY='),(71,44,'2011-01-14 13:53:28','P',1,'Done','AAAL2n///7A=',2230,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/PullOperation.java','AAAL2n///6c='),(71,8,'2011-01-14 13:30:03','P',1,'ok for 1) getCause can return null (even though the field cause is never null).\n\n2) But e.getMessage also contains information, so I believe that message should be reported and e passed to error,  just like GitAPIException is handled.','AAAL2n///7I=',2230,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/PullOperation.java','AAAL2n///7A='),(71,44,'2011-01-14 13:20:18','P',1,'1) is a safety net. It is possible to construct this exception without cause.\n2) The cause is the interesting thing here. If contains the error information when push failed.','AAAL2n///7U=',2230,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/PullOperation.java','AAAL2n///7I='),(71,8,'2011-01-14 13:01:15','P',1,'1) When would getCause return null?\n\n2) Why drop the exeption message and use the cause\' message?',NULL,2230,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/PullOperation.java','AAAL2n///7U='),(62,4,'2011-01-11 15:15:31','P',1,'style nit: trailing whitespace, also below',NULL,2231,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java','AAAL2X///fc='),(62,46,'2011-01-12 07:54:16','P',1,'Done','AAAL2X///fc=',2231,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java','AAAL2X///fE='),(55,4,'2011-01-11 15:20:07','d',1,'method name is misleading, it should express that the dialog is only shown once',NULL,2232,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/BasicConfigurationDialog.java','AAAL2X///fQ='),(1,4,'2011-01-11 15:18:23','d',1,'missing license header',NULL,2232,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/BasicConfigurationDialog.java','AAAL2X///fU='),(148,46,'2011-01-12 21:35:13','P',1,'At the moment, we don\'t see such tags anywhere else in Egit, so I guess we should not fill the tagMap here (perhaps we should add a TODO to consider these once we have tags in the tag dialog and history view).',NULL,2235,5,'org.eclipse.egit.core/src/org/eclipse/egit/core/RepositoryUtil.java','AAAL2n///+s='),(936,1,'2011-01-13 18:03:16','P',1,'Should we also use the cached DirCache when locking a DirCache for writing?',NULL,2245,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL2n///8o='),(926,1,'2011-01-13 18:03:16','P',1,'We should update the Javadoc to make it clear that the returned DirCache instance is cached by Repository and is thus *not* thread-safe (because DirCache is not thread-safe).  Callers who need a unique copy of the DirCache to support concurrent access from different threads should be directed to the lower level invocation:\n\n  DirCache.read(repo.getIndexFile(), repo.getFS())\n\nto construct their own private copy of the structure.',NULL,2245,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL2n///8s='),(340,44,'2011-01-20 10:11:46','P',1,'Done','AAAL2n///n4=',2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java','AAAL2n///mg='),(303,44,'2011-01-20 10:11:46','P',1,'Done','AAAL2n///oA=',2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java','AAAL2n///mk='),(436,44,'2011-01-20 10:11:46','P',1,'Done','AAAL2n///n0=',2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java','AAAL2n///mY='),(436,4,'2011-01-19 22:14:07','P',1,'did you intend to document this ?',NULL,2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java','AAAL2n///n0='),(340,4,'2011-01-19 22:14:07','P',1,'did you intend to document this ?',NULL,2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java','AAAL2n///n4='),(303,4,'2011-01-19 22:14:07','P',1,'I think this println should be removed',NULL,2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java','AAAL2n///oA='),(60,44,'2011-01-20 10:11:46','P',1,'Done','AAAL2n///nw=',2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/UnmodifiableDirCache.java','AAAL2n///mU='),(60,4,'2011-01-19 22:14:07','P',1,'missing javadoc',NULL,2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/UnmodifiableDirCache.java','AAAL2n///nw='),(56,4,'2011-01-19 22:14:07','P',1,'missing javadoc',NULL,2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/UnmodifiableDirCacheEntry.java','AAAL2n///ns='),(627,44,'2011-01-20 10:11:46','P',1,'Done','AAAL2n///no=',2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL2n///mQ='),(627,4,'2011-01-19 22:14:07','P',1,'I would add a method isModifiable() to avoid handling this via an exception (doesn\'t look like this is exceptional and this also comes with a performance penalty)',NULL,2245,2,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL2n///no='),(59,1,'2011-01-23 23:55:40','P',1,'I\'m not sure this is the best approach.  Subclassing a mutable type and then overriding all of the mutator methods is risky; when we add a new mutator method we need to remember to also add it to the subclassed unmodifiable type.  :-(\n\nI would prefer to do what we did with ObjectId when we created AnyObjectId and MutableObjectId.  Pull the majority of the code into a new abstract base class that supports read-only operations.  Make the existing DirCache/DirCacheEntry types extend that and define the mutation methods on those.  Define two new Unmodifiable types that also extend the abstract base classes, and make those the unmodifiable variant.\n\nA different approach that I had considered when we were talking about this was to simply leave DirCacheEntry mutable, but make DirCache itself be at least thread-safe against concurrent updates by taking the majority of its state and tossing that into a new private inner State class, which is held by DirCache through a volatile field.  Readers can grab the state, and then read the state safely.  Writers that are updating the entry list via a builder, editor, or by re-reading from disk would create a new state and perform a write to the volatile field to publish it.  This does mean that readers who have a DirCache might observe a DirCacheEntry, and then later reading the same path from the same DirCache might get an entirely different entry... but I think that\'s OK if they are using the cached read-only DirCache and are expecting it to be current with what is on disk.\n\nThen if a client application absolutely needs to have its own stable DirCache we could offer a copy() method on DirCache that makes a new DirCache instance with the same inner State reference... but now future reads wouldn\'t impact that new copy.  Oh, and that copy was cheap because its just creating a new DirCache and pointing to the same state array.\n\nWe do have to trust applications *not* to edit a DirCacheEntry obtained from such a shared DirCache.  We already do that with ObjectLoaders and getCachedBytes().  But maybe DirCacheEntry is too high-level of an API to trust applications not to mutate something they shouldn\'t?',NULL,2245,3,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/UnmodifiableDirCacheEntry.java','AAAL2n///Z8='),(148,1,'2011-01-23 23:55:40','P',1,'Style-nit: This should be next to the readDirCache() method in the class, like before it.  Not in the middle of the listener methods.',NULL,2245,3,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL2n///ac='),(150,1,'2011-01-23 23:55:40','P',1,'Because the field is volatile, its bad to read it multiple times in the method.  Instead do:\n\n  DirCache ro = readOnlyDirCache;\n  if (ro == null || ro.isOutdated()) {\n    ro = new UnmodifiableDirCache(getIndexFile(), getFS());\n    readOnlyDirCache = ro;\n  }\n  return ro;',NULL,2245,3,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL2n///aU='),(141,1,'2011-01-23 23:55:40','P',1,'I think the method warrants a bit more description than just its return value.\n\n /**\n  * Get an immutable (but up-to-date) copy of the DirCache.\n  * <p>\n  * The returned DirCache is cached and shared with all callers\n  * that used this method to obtain it.  If the on-disk file has not\n  * been modified since the last request, the same instance is\n  * returned to the caller.  If the on-disk file has changed, a new\n  * instance is returned that contains the changes.  This allows\n  * callers to treat the method return value as a stable snapshot.',NULL,2245,3,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL2n///aY='),(37,4,'2011-01-16 21:08:14','P',1,'wrong syntax for package dependency version specification:\n\ns/bundle-version/version/',NULL,2253,1,'org.eclipse.egit.ui.test/META-INF/MANIFEST.MF','AAAL2n///20='),(10,4,'2011-01-16 21:08:14','P',0,'wrong syntax for package dependency version specification:\n\ns/version/bundle-version/',NULL,2253,1,'org.eclipse.egit.ui.test/META-INF/MANIFEST.MF','AAAL2n///2w='),(2,8,'2011-01-17 20:51:38','P',1,'Use bin/ and target/ for directories',NULL,2257,3,'org.eclipse.egit.mylyn-feature/.gitignore','AAAL2n///zE='),(29,4,'2011-01-17 21:56:26','P',1,'shouldn\'t this have .qualifier ?',NULL,2257,3,'org.eclipse.egit.mylyn-feature/feature.xml','AAAL2n///xg='),(26,4,'2011-01-17 21:56:26','P',1,'why do we need this dependency ?\nthat doesn\'t look like it\'s Galileo compatible...',NULL,2257,3,'org.eclipse.egit.mylyn-feature/feature.xml','AAAL2n///xk='),(21,4,'2011-01-17 21:56:26','P',1,'I would expect this to be part of the main egit p2 repo (not pde)',NULL,2257,3,'org.eclipse.egit.mylyn-feature/feature.xml','AAAL2n///xs='),(1,8,'2011-01-17 20:51:38','P',1,'Add trailing/ for diretories',NULL,2257,3,'org.eclipse.egit.mylyn.ui/.gitignore','AAAL2n///zA='),(26,4,'2011-01-17 21:56:26','P',1,'missing version specifier 0.11.0.qualifier',NULL,2257,3,'org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF','AAAL2n///xc='),(20,4,'2011-01-17 21:56:26','P',1,'in all other egit and jgit bundles we use package dependencies on jgit and egit with version range [0.11,0.12)',NULL,2257,3,'org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF','AAAL2n///xw='),(27,4,'2011-01-17 21:56:26','P',1,'missing version specifier 0.11.0.qualifier',NULL,2257,3,'org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF','AAAL2n///xY='),(22,8,'2011-01-17 20:51:38','P',1,'Wby not Import-Package?',NULL,2257,3,'org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF','AAAL2n///zI='),(4,8,'2011-01-17 20:51:38','P',1,'away-commented?',NULL,2257,3,'org.eclipse.egit.mylyn.ui/plugin.xml','AAAL2n///zM='),(21,8,'2011-01-17 20:51:38','P',1,'Some javadoc to explaint this class would be nice',NULL,2257,3,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/CommitDialogExtender.java','AAAL2n///zc='),(38,8,'2011-01-17 20:51:38','P',1,'We avoid braces for omeline ifs like these',NULL,2257,3,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/CommitDialogExtender.java','AAAL2n///zg='),(30,8,'2011-01-17 20:51:38','P',1,'Use the @return and @param taga',NULL,2257,3,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/CommitDialogExtender.java','AAAL2n///zk='),(27,8,'2011-01-17 20:51:38','P',1,'We don\'t use @author tags. Add these people to the\ncopyright header.',NULL,2257,3,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/CommitDialogExtender.java','AAAL2n///zo='),(50,8,'2011-01-17 20:51:38','P',1,'Why do these two methods exist?',NULL,2257,3,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/CommitDialogExtender.java','AAAL2n///zY='),(25,8,'2011-01-17 20:51:38','P',1,'trailing whitespace',NULL,2257,3,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/EGitMylynUI.java','AAAL2n///zQ='),(46,8,'2011-01-17 20:51:38','P',1,'@return is enough',NULL,2257,3,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/EGitMylynUI.java','AAAL2n///zU='),(45,4,'2011-01-17 22:00:48','P',1,'style nit: trailing whitespace',NULL,2257,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/MylynCommitMessageProvider.java','AAAL2n///xA='),(40,4,'2011-01-17 22:00:48','P',1,'style nit: trailing whitespace',NULL,2257,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/MylynCommitMessageProvider.java','AAAL2n///xE='),(7,4,'2011-01-17 22:00:48','P',1,'style nit: trailing whitespace',NULL,2257,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/MylynCommitMessageProvider.java','AAAL2n///xI='),(7,4,'2011-01-17 22:00:48','P',1,'style nit: trailing whitespace',NULL,2257,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/EGitMylynUI.java','AAAL2n///xM='),(16,4,'2011-01-17 22:36:48','d',1,'this doesn\'t belong here, was probably copied from the egit-pde feature ...',NULL,2257,6,'org.eclipse.egit.mylyn-feature/feature.properties','AAAL2n///ww='),(21,4,'2011-01-17 22:41:35','d',1,'I think this is a copy&paste mistake, this should be part of the main egit p2 repo available at http://download.eclipse.org/egit/updates\n(without pde in the URL)',NULL,2257,6,'org.eclipse.egit.mylyn-feature/feature.xml','AAAL2n///wk='),(26,4,'2011-01-17 22:38:15','d',1,'could we sort this list by plugin-id',NULL,2257,6,'org.eclipse.egit.mylyn-feature/feature.xml','AAAL2n///ws='),(114,8,'2011-01-18 07:50:26','P',1,'I guess I could investigate more. Will include be called for every entry,\ni.e. also the different stages. We can assume this filter is the first\none?\n\nThis is a leftover from my first cut, where I decided to ignore the presense of unmerged entries. The worked counter is a way of cutting\nof progress once we reach \"100 per cent\".','AAAL2n///yA=',2263,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL2n///vc='),(257,8,'2011-01-18 07:50:26','P',1,'I was looking at that index, but wasn\'t convinced it was meant for public consumption. \n\nCan\'t I just move the progress filter to be first filter in order to fix the first problem. I don\'t think we have to 100% accurate, the main idea is to let the user feel good.','AAAL2n///x8=',2263,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL2n///vY='),(311,1,'2011-01-17 21:33:12','P',1,'Is this an issue for EGit when the TreeWalk stops without visting every node?  I seem to remember some problem with the Eclipse ProgressMonitor stuff where ending the current task without working 100% of the units within that task confused it.  Am I mistaken, or have we worked around that in the EGit wrapper that adapts Eclipse ProgressMonitor to JGit ProgressMonitor?',NULL,2263,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL2n///x4='),(257,1,'2011-01-17 21:33:12','P',1,'If this.filter is a PathFilter (which is usually what type it is when its non-null) we won\'t iterate the entire repository.  Instead we\'ll skip over large chunks of it based on what the PathFilter says is relevant.  Is it OK in those cases for the progress monitor to be inaccurate?\n\nIts ugly, but we might be able to do better by peeking at the DirCacheIterator\'s state.  It has an index that tells us how far into the DirCache we currently are... which is exactly what the progress should be.  When this.filter is a PathFilter and we skip over an entire subdirectory that isn\'t relevant, DirCacheIterator\'s state reflects the number of paths that were skipped over and thus would give us a more accurate progress update.  But doing so requires poking DirCacheIterator\'s API, and I\'m not sure we want to expose internal state like that.',NULL,2263,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL2n///x8='),(114,1,'2011-01-17 21:33:12','P',1,'Isn\'t this condition always true?  You set worked = total above, but then subtract from it only 100 times.  If we have 1000 files in the DirCache, at the \"end\" of the iteration worked is still 900.',NULL,2263,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL2n///yA='),(15,2,'2011-01-18 14:45:50','P',1,'Can you add \"Bug: 123\" here representing the bug?',NULL,2270,3,'/COMMIT_MSG','AAAL2n///t8='),(468,4,'2011-01-19 21:57:32','P',1,'style nit: we don\'t use curly braces around single line blocks',NULL,2270,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///o4='),(452,4,'2011-01-19 21:57:32','P',1,'style nit: we don\'t use curly braces around single line blocks',NULL,2270,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///ow='),(471,74,'2011-01-18 23:47:26','P',1,'This will break when there is no EGit-Mylyn Bridge installed as this method returns null in that case instead of an empty string.',NULL,2270,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///tI='),(27,74,'2011-01-19 21:58:07','P',1,'Done','AAAL2n///ps=',2282,1,'org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF','AAAL2n///os='),(27,4,'2011-01-19 21:51:57','P',1,'import version range [0.11,0.12) instead',NULL,2282,1,'org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF','AAAL2n///ps='),(10,74,'2011-01-19 21:58:07','P',1,'Done','AAAL2n///po=',2282,1,'org.eclipse.egit.mylyn.ui/plugin.xml','AAAL2n///oo='),(10,4,'2011-01-19 21:51:57','P',1,'style nit: trailing whitespace',NULL,2282,1,'org.eclipse.egit.mylyn.ui/plugin.xml','AAAL2n///po='),(19,74,'2011-01-19 21:58:07','P',1,'Done','AAAL2n///pg=',2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///oc='),(8,74,'2011-01-19 21:58:07','P',1,'Done','AAAL2n///pc=',2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///og='),(7,74,'2011-01-19 21:58:07','P',1,'Done','AAAL2n///pk=',2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///ok='),(47,74,'2011-01-19 21:58:07','P',1,'Done','AAAL2n///pM=',2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///oM='),(44,74,'2011-01-19 21:58:07','P',1,'Done','AAAL2n///pQ=',2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///oQ='),(35,74,'2011-01-19 21:58:07','P',1,'Done','AAAL2n///pY=',2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///oU='),(29,74,'2011-01-19 21:58:07','P',1,'Done','AAAL2n///pU=',2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///oY='),(8,49,'2011-01-19 21:48:49','P',1,'White space issue.',NULL,2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///pc='),(19,4,'2011-01-19 21:51:57','P',1,'missing javadoc for public class',NULL,2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///pg='),(7,4,'2011-01-19 21:51:57','P',1,'style nit: trailing whitespace (more occurrences below)',NULL,2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///pk='),(47,49,'2011-01-19 21:48:49','P',1,'White space issue.',NULL,2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///pM='),(44,49,'2011-01-19 21:48:49','P',1,'White space issue.',NULL,2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///pQ='),(29,4,'2011-01-19 21:51:57','P',1,'nit: we don\'t use curly braces around single line blocks',NULL,2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///pU='),(35,49,'2011-01-19 21:48:49','P',1,'White space issue.',NULL,2282,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///pY='),(14,4,'2011-01-20 07:47:12','d',1,'give the changeid instead, then gerrit will render a hyperlink, also the other change no. format is deprecated I think',NULL,2283,1,'/COMMIT_MSG','AAAL2n///m0='),(32,4,'2011-01-19 23:01:35','d',1,'as the class has package visibility this doesn\'t need to be public',NULL,2283,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/DecoratableResourceHelper.java','AAAL2n///nY='),(113,4,'2011-01-21 10:19:55','P',1,'I would put a comment here, this looks weird',NULL,2283,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/DecoratableResourceHelper.java','AAAL2n///jo='),(63,4,'2011-01-21 10:19:55','P',1,'remove this commented out debug code',NULL,2283,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDecoratorJob.java','AAAL2n///js='),(298,4,'2011-01-21 10:19:55','P',1,'when running the egit ui tests I hit this case many times, if this happens frequently either this points to a bug or we should not throw an error but instead only write a trace if debug trace is on, also the path of the resource should be given, otherwise this stack trace is quite useless to understand the cause\n\n!ENTRY org.eclipse.egit.ui 4 0 2011-01-21 11:02:57.596\n!MESSAGE Errors occurred while applying Git decorations to resources.\n!STACK 1\norg.eclipse.core.runtime.CoreException: Resource could not be decorated\n	at org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator.prepareDecoration(GitLightweightDecorator.java:299)\n	at org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator.processDecoration(GitLightweightDecorator.java:267)\n	at org.eclipse.egit.ui.internal.decorators.GitDecoratorJob.run(GitDecoratorJob.java:60)\n	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\n!SUBENTRY 1 org.eclipse.egit.ui 4 0 2011-01-21 11:02:57.596\n!MESSAGE Resource could not be decorated',NULL,2283,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java','AAAL2n///j0='),(254,4,'2011-01-21 10:19:55','P',1,'I think this is ok',NULL,2283,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java','AAAL2n///jk='),(250,4,'2011-01-21 10:19:55','P',1,'remove this line, we don\'t want println and also no commented out code',NULL,2283,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java','AAAL2n///jw='),(7,8,'2011-01-20 07:07:10','P',1,'Please refer to Change-Id or Commit id. I\'m not sure how long 2271\nwill be available as a reference and it certainly is not online.',NULL,2284,1,'/COMMIT_MSG','AAAL2n///nE='),(1,4,'2011-01-19 23:32:16','P',1,'if you give the changeid instead of #2276, gerrit will render a hyperlink',NULL,2284,1,'/COMMIT_MSG','AAAL2n///nU='),(36,4,'2011-01-21 14:50:39','P',1,'should be marked as non-translatable text',NULL,2289,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/MylynCommitMessageProvider.java','AAAL2n///iY='),(45,74,'2011-01-20 16:05:57','P',1,'whitespace nit',NULL,2289,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/MylynCommitMessageProvider.java','AAAL2n///ls='),(899,1,'2011-01-22 23:19:44','P',1,'Yes, but we already have the incoming data fully loaded into a byte[].  So there are only two reasons the existing data won\'t also fit into a byte[]:  the JVM heap is full and we get OutOfMemoryError during allocation, that turns into a LargeObjectException and the receive aborts.  The other is the incoming object doesn\'t match lengths and is way shorter, again we either get LargeObjectException from getCachedBytes or Arrays.equals would fail fast when the array lengths aren\'t the same.  So I\'m not too worried about the object-not-fitting case here.\n\nActually, PackParser just cannot handle objects that are deltas and don\'t fit into memory.  It can do large whole objects, but that\'s a different code path which streams both sides during checking for collisions.\n\nWe cannot rely on the compressed data validation to determine if they are the same or not.  Yes, if they had the same exact compressed stream they have the same content, but our local copy might be loose, so its compressed content differs.  Or our local copy might be compressed with a different compression level than what we are receiving, or even just a different version of libz which may have generated a slight difference.  Or our local copy is a delta against something else, so its compressed content is very different.  So I think we would all too often see the compressed validation fail, but then the inflated validation pass.  Which makes the compressed validation somewhat worthless.\n\nThis entire \"lets check what we already have\" rule exists because readers cannot prefer the existing content.  In my DHT storage implementation I\'m making it explicit which content copy came before another copy, which makes it simple for a reader to prefer the already existing content.  Thus I don\'t need to compare the contents, the reader would automatically ignore the new copy and prefer the older one we already had.  Later garbage collection can remove the newer copy.','AAAL2n///fI=',2294,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java','AAAL2n///dA='),(899,8,'2011-01-22 10:49:09','P',1,'Not quite related to this patch per-se, but this check would not work for very large objects since the JVM would be able to load everything into an array.\nSecond, I think the compressed data would usually also be identical so we could check the compressed data first and only decompress and check the real data if that fails.',NULL,2294,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java','AAAL2n///fI='),(78,4,'2011-01-21 18:54:07','d',1,'style nit: trailing whitespace',NULL,2295,1,'org.eclipse.jgit.storage.dht/resources/org/eclipse/jgit/storage/dht/git_store.proto','AAAL2n///f4='),(3,4,'2011-02-14 21:22:18','d',1,'do we need these ? Looks like the dht project has no test resources under these paths',NULL,2295,8,'org.eclipse.jgit.storage.dht.test/.settings/org.eclipse.core.resources.prefs','AAAL23///uc='),(73,4,'2011-04-13 14:47:45','P',1,'TimeUnit.MINUTES isn\'t available in Java 5',NULL,2295,21,'org.eclipse.jgit.storage.dht.test/tst/org/eclipse/jgit/storage/dht/TimeoutTest.java','AAAL4H///c8='),(73,1,'2011-05-05 17:05:08','P',1,'Done','AAAL4H///c8=',2295,21,'org.eclipse.jgit.storage.dht.test/tst/org/eclipse/jgit/storage/dht/TimeoutTest.java','AABOIn///h4='),(90,4,'2011-04-13 14:47:45','P',1,'typo: s/happing/happening/',NULL,2295,21,'org.eclipse.jgit.storage.dht/README','AAAL4H///cU='),(90,1,'2011-05-05 17:05:08','P',1,'Done','AAAL4H///cU=',2295,21,'org.eclipse.jgit.storage.dht/README','AABOIn///h0='),(409,4,'2011-04-14 14:16:40','P',1,'should this method be named \"encodeUInt24\" to be consistently named with the next method ?',NULL,2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/ChunkIndex.java','AAAL4H///Yo='),(409,1,'2011-05-05 17:05:08','P',1,'Done','AAAL4H///Yo=',2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/ChunkIndex.java','AABOIn///hw='),(51,4,'2011-04-14 14:16:40','P',1,'nit: redundant period at the end of this text',NULL,2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/ChunkMeta.java','AAAL4H///Yk='),(51,1,'2011-05-05 17:05:08','P',1,'Done','AAAL4H///Yk=',2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/ChunkMeta.java','AABOIn///hs='),(166,4,'2011-04-13 14:47:45','P',1,'TimeUnit.HOURS isn\'t available in Java 5',NULL,2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AAAL4H///c0='),(136,4,'2011-04-13 14:47:45','P',1,'TimeUnit.HOURS isn\'t available in Java 5',NULL,2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AAAL4H///c4='),(167,4,'2011-04-13 14:47:45','P',1,'TimeUnit.MINUTES isn\'t available in Java 5',NULL,2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AAAL4H///co='),(163,4,'2011-04-13 14:47:45','P',1,'TimeUnit.MINUTES isn\'t available in Java 5',NULL,2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AAAL4H///cs='),(133,4,'2011-04-13 14:47:45','P',1,'TimeUnit.MINUTES isn\'t available in Java 5',NULL,2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AAAL4H///cw='),(166,1,'2011-05-05 17:05:08','P',1,'Done','AAAL4H///c0=',2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AABOIn///hc='),(163,1,'2011-05-05 17:05:08','P',1,'Done','AAAL4H///cs=',2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AABOIn///hg='),(136,1,'2011-05-05 17:05:08','P',1,'Done','AAAL4H///c4=',2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AABOIn///hk='),(133,1,'2011-05-05 17:05:08','P',1,'Done','AAAL4H///cw=',2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AABOIn///ho='),(167,1,'2011-05-05 17:05:08','P',1,'Done','AAAL4H///co=',2295,21,'org.eclipse.jgit.storage.dht/src/org/eclipse/jgit/storage/dht/Timeout.java','AABOIn///hY='),(108,4,'2011-05-05 14:25:39','P',1,'typo: s/through/though/',NULL,2295,23,'org.eclipse.jgit.storage.dht.test/tst/org/eclipse/jgit/storage/dht/LargeNonDeltaObjectTest.java','AABOIn///kU='),(13,49,'2011-01-22 23:10:29','P',1,'Done','AAAL2n///ec=',2303,4,'/COMMIT_MSG','AAAL2n///dk='),(9,49,'2011-01-22 23:10:29','P',1,'Done','AAAL2n///eg=',2303,4,'/COMMIT_MSG','AAAL2n///do='),(13,4,'2011-01-22 22:59:07','P',1,'typo: remove first \"we\"',NULL,2303,4,'/COMMIT_MSG','AAAL2n///ec='),(9,4,'2011-01-22 22:59:07','P',1,'typo s/INonIgnoderFilter were/NonIgnoredFilter was/',NULL,2303,4,'/COMMIT_MSG','AAAL2n///eg='),(99,49,'2011-01-22 23:10:29','P',1,'Done','AAAL2n///eY=',2303,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/GitFolderResourceVariant.java','AAAL2n///ds='),(99,4,'2011-01-22 22:59:07','P',1,'should be mentioned in commit message',NULL,2303,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/GitFolderResourceVariant.java','AAAL2n///eY='),(64,1,'2011-01-23 21:22:28','P',1,'My thoughts exactly Chris.  Lets drop get(...) at the same time and just replace it with getNote().  The delta may actually be smaller because we aren\'t duplicating the method bodies.',NULL,2304,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java','AAAL2n///ao='),(64,2,'2011-01-21 16:29:49','P',1,'Looks ok... but given that we have get(...)... shouldn\'t we just use getNote(...) now and drop the generic get(...)?',NULL,2304,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java','AAAL2n///gQ='),(64,9,'2011-01-25 07:42:11','P',1,'Done.\nThe delta for this class is smaller but the delta for LeafBucketTest is larger because it now must to use getNote().getData() instead of the get() method above.','AAAL2n///ao=',2304,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java','AAAL2n///ZQ='),(64,9,'2011-01-25 07:42:11','P',1,'Done','AAAL2n///gQ=',2304,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteBucket.java','AAAL2n///ZU='),(208,1,'2011-01-23 21:22:28','P',1,'Lets leave this get() however as its part of the public NoteMap API and some callers may prefer this variant.',NULL,2304,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2n///ak='),(208,9,'2011-01-25 07:42:11','P',1,'Done','AAAL2n///ak=',2304,1,'org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java','AAAL2n///ZY='),(9,49,'2011-01-22 23:05:39','d',1,'Done','AAAL2n///es=',2305,2,'/COMMIT_MSG','AAAL2n///d0='),(10,49,'2011-01-22 23:05:41','d',1,'Done','AAAL2n///eo=',2305,2,'/COMMIT_MSG','AAAL2n///dw='),(10,4,'2011-01-22 22:53:49','P',1,'I don\'t understand this sentence, could you provide more details about what problem you are fixing here ?',NULL,2305,2,'/COMMIT_MSG','AAAL2n///eo='),(9,4,'2011-01-22 22:53:49','P',1,'typo: s/introduce/introduced/',NULL,2305,2,'/COMMIT_MSG','AAAL2n///es='),(45,49,'2011-01-22 23:01:46','d',1,'Done','AAAL2n///ew=',2305,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelTree.java','AAAL2n///eE='),(45,4,'2011-01-22 22:53:49','P',1,'fix TODO ...',NULL,2305,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelTree.java','AAAL2n///ew='),(9,49,'2011-01-22 23:12:32','P',1,'Done','AAAL2n///eM=',2307,1,'/COMMIT_MSG','AAAL2n///dU='),(7,49,'2011-01-22 23:12:32','P',1,'Done','AAAL2n///eQ=',2307,1,'/COMMIT_MSG','AAAL2n///dY='),(9,4,'2011-01-22 23:01:11','P',1,'typo: s/After during/When/',NULL,2307,1,'/COMMIT_MSG','AAAL2n///eM='),(7,4,'2011-01-22 23:01:11','P',1,'typo: s/Prevent from/Fix/',NULL,2307,1,'/COMMIT_MSG','AAAL2n///eQ='),(9,49,'2011-01-22 23:18:30','P',1,'Done','AAAL2n///eA=',2308,1,'/COMMIT_MSG','AAAL2n///dI='),(9,4,'2011-01-22 23:02:50','P',1,'typo: s/valiables/variables/',NULL,2308,1,'/COMMIT_MSG','AAAL2n///eA='),(9,1,'2011-01-22 23:52:32','P',1,'I would reword this as:\n\n  RevFilter.include()\'s documentation promises the RevCommit\'s\n  body is parsed before include is invoked.  This wasn\'t always\n  true if the commit was parsed once, had its body discarded,\n  the RevWalk was reset() and started a new traversal.',NULL,2309,1,'/COMMIT_MSG','AAAL2n///cs='),(7,1,'2011-01-22 23:52:32','P',1,'s/Parsing/Parse/',NULL,2309,1,'/COMMIT_MSG','AAAL2n///cw='),(141,1,'2011-01-22 23:52:32','P',1,'Blargh.  The RevFilter docs say we have the body parsed, but yes, after a reset() it might be gone.\n\nWe should have a unit test for this breakage, so we don\'t regress on it.',NULL,2309,1,'org.eclipse.jgit/src/org/eclipse/jgit/revwalk/PendingGenerator.java','AAAL2n///c0='),(51,1,'2011-01-23 21:16:35','P',1,'What Robin means is, you need to test that the filter include ran:\n\n  final AtomicBoolean filterRan = new AtomicBoolean();\n  RevFilter testFilter = ... \n    assertNotNull(cmit.getRawBuffer());\n    filterRan.set(true);\n\n\n  filterRan.set(false);\n  ... do the walk ...\n  assertTrue(\"filter ran\", filterRan.get());\n\nThis way the test fails if include() did not get invoked.\n\nAlso, I think you need to dispose of the commit in the first while loop, otherwise the test will still pass without your bug fix.',NULL,2309,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkResetTest.java','AAAL2n///aw='),(51,114,'2011-01-23 19:26:16','P',1,'The RevFilter above asserts if a commit without a parsed body is ever parsed to include().  RevWalk.next() doesn\'t state any requirement that the it returns a parsed commit.  However, I can go ahead and another check here as well to make sure that next() also provides a commit with a parsed body.','AAAL2n///bU=',2309,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkResetTest.java','AAAL2n///bA='),(51,8,'2011-01-23 15:39:58','P',1,'Test that it does the right thing, not just that it does not crash',NULL,2309,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkResetTest.java','AAAL2n///bU='),(1,8,'2011-01-23 15:39:58','P',1,'license header is missing',NULL,2309,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkResetTest.java','AAAL2n///bY='),(51,114,'2011-01-24 16:40:32','P',1,'Ah, that makes sense.\n\nThe problem I was running into was actually that PendingGenerator was disposing of commits marked as uninteresting.  Marking \'b\' as uninteresting above and uncommenting my change to parse the commits would cause the test case to fail.\n\nIt would probably be good to also test explicitly disposing of commits as well.','AAAL2n///aw=',2309,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkResetTest.java','AAAL2n///Yo='),(298,8,'2011-01-23 15:36:14','P',1,'style-nit: avoid braces for simple constructs',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///b0='),(291,8,'2011-01-23 15:36:14','P',1,'style-nit: avoid braces for simple constructs',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///b4='),(286,8,'2011-01-23 15:36:14','P',1,'style-nit: avoid braces for simple constructs',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///b8='),(284,8,'2011-01-23 15:36:14','P',1,'call it pathLen',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///bg='),(283,8,'2011-01-23 15:36:14','P',1,'Why not call ut pathOffset?',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///bk='),(282,8,'2011-01-23 15:36:14','P',1,'Use a better name, like \"path\"',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///bo='),(297,8,'2011-01-23 15:36:14','P',1,'Pos sounds like an \"absolute\", Using something like offset instead.',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///bs='),(305,8,'2011-01-23 15:36:14','P',1,'style-nit: unnecessary empy line',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///bw='),(269,8,'2011-01-23 15:36:14','P',1,'style-nit: avoid braces for simple constructs',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///cA='),(216,8,'2011-01-23 15:36:14','P',1,'style-nit: avoid braces for simple constructs',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///cE='),(223,8,'2011-01-23 15:36:14','P',1,'style-nit: avoid braces for simple constructs',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///cI='),(220,8,'2011-01-23 15:36:14','P',1,'for (;;) is the preferred forever loop idiom.',NULL,2310,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n///cM='),(207,114,'2011-02-15 21:05:40','P',1,'Done.\n\nThanks for the tip.  It did indeed make the code much cleaner.','AAAL2n//+s4=',2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL23///q0='),(221,1,'2011-02-01 21:09:58','P',1,'Style-nit: Unnecessary blank line.',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+0A='),(241,1,'2011-02-01 21:09:58','P',1,'Style-nit: Unnecessary blank line.',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+0E='),(239,1,'2011-02-01 21:09:58','P',1,'Style-nit: Unnecessary blank line.',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+0I='),(203,2,'2011-02-01 20:05:22','P',1,'Can you add some documentation on when these exceptions would occur?\n\nOther than that, I think we\'re good to go after that small doc change.\n\nThanks Jesse!',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+0Q='),(207,1,'2011-02-03 16:41:52','P',1,'Paths like /foo/bar and //foo//bar shouldn\'t be handed to this function.  Callers cannot expect TreeWalk to handle foo//bar as foo/bar; foo//bar is bar within a subdirectory of no name, within foo.  Likewise with leading slashes.','AAAL2n//+uE=',2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+s0='),(207,1,'2011-02-03 16:41:52','P',1,'I propose replacing the existing method with the new one.\n\nBut it occurred to me after I wrote the comment above that we might be able to replace the method with a smaller variant using the PathFilter code.  The existing PathFilter can mostly do the same thing; add it to the TreeWalk.  setRecursive(false).  Then when tw.isSubtree() is true and the PathFilter is not done, enter the subtree.  The \"path filter is not done\" part is new, we would need to add that to the PathFilter class to let it see if the TreeWalk\'s current length is equal to the PathFilter\'s path length.  If the lengths are the same, we know this is the target.  If TreeWalk\'s current path is shorter, we know we need to dive into the subtree.\n\nThat may be a much cleaner solution because its less code, and we aren\'t going through this mess of parsing the path ourselves.','AAAL2n//+uU=',2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+s4='),(207,114,'2011-02-03 15:03:01','P',1,'Also, with the implementation above, paths like \"/foo/bar\" or \"//foo///bar\" wouldn\'t work even if a path such as \"foo/bar\" exists.\n\nI don\'t think it would be too hard to fix, but is the expectation for jgit API users to handle cleaning up their inputs for methods like these?  Or should we try to be forgiving here?',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+uE='),(207,114,'2011-02-03 14:34:00','P',1,'There is already a method with the same name and signature in TreeWalk as what you have above.  Are you suggesting that this new method replace that existing one?  Or should a different name or signature be used for this new method?','AAAL2n//+zw=',2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+uU='),(245,1,'2011-02-01 21:09:58','P',1,'Style-nit: Unnecessary blank line.',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+z0='),(217,1,'2011-02-01 21:09:58','P',1,'This case occurs if path == null || path.length() == 0.  For anything else, you should have a next token.  So rework the logic:\n\n  if (path == null || path.length() == 0)\n    return tree.toObjectId();\n\n  TreeWalk tw = new TreeWalk(or);\n  tw.addTree(tree);\n  ...',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+z4='),(216,1,'2011-02-01 21:09:58','P',1,'Style-nit: With two \"lines\" in the then block, wrap it in curly braces.',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+z8='),(214,1,'2011-02-01 21:09:58','P',1,'This is a Java 6 method, we stick to Java 5 API in JGit.',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+zs='),(207,1,'2011-02-01 21:09:58','P',1,'This entire method is pretty complex for what it does.  I think if you rebase this onto current master you can take advantage of the changes I made to AbstractTreeIterator recently:\n\n  \n  private static int nextSlash(byte[] pathBuf, int ptr, int end) {\n    while (ptr < end && pathBuf[ptr] != \'/\')\n      ptr++;\n    return ptr;\n  }\n\n  public static TreeWalk forPath(final ObjectReader reader, final String path,\n			final AnyObjectId... trees) throws MissingObjectException,\n			IncorrectObjectTypeException, CorruptObjectException, IOException {\n    byte[] pathBuf = Constants.encode(path);\n\n    TreeWalk tw = new TreeWalk(reader);\n    tw.reset(trees);\n\n    int ptr = 0;\n    int end = nextSlash(pathBuf, ptr, pathBuf.length);\n    int mode = end < path.length\n      ? FileMode.TREE.getBits()\n      : -1;\n\n    while (tw.next()) {\n      int cmp = tw.currentHead.pathCompare(pathBuf, ptr, end, mode);\n      if (cmp < 0)\n        continue;\n      if (cmp > 0)\n        return null;\n      if (end == path.length)\n        return tw;\n\n      ptr = end + 1;\n      end = nextSlash(pathBuf, ptr, pathBuf.length);\n      mode =  mode = end < pathBuf.length\n        ? FileMode.TREE.getBits()\n        : -1; \n      tw.enterSubtree();\n    }\n\n    return null;\n  }\n\nAnd you\'ll need to make a tiny change to AbstractTreeIterator.pathCompare.  On line 353 before the mode of both entries is considered insert:\n\n    if (bMode == -1)\n      return 0;\n    return lastPathChar(mode) - lastPathChar(bMode);\n\nBasically lets fix forPath() instead of adding a new special method.',NULL,2310,4,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL2n//+zw='),(115,1,'2011-02-17 19:15:35','P',1,'Nice test cases, thanks for doing these.',NULL,2310,5,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/ForPathTest.java','AAAL23///i0='),(79,1,'2011-02-17 19:15:35','P',1,'DirCache.newInCore() might be better here.',NULL,2310,5,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/ForPathTest.java','AAAL23///i4='),(79,114,'2011-02-17 19:50:03','P',1,'Done','AAAL23///i4=',2310,5,'org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/ForPathTest.java','AAAL23///is='),(127,114,'2011-02-17 19:50:03','P',1,'Done\n\nThanks for pointing that out, I didn\'t realize that was happening.','AAAL23///jE=',2310,5,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/PathFilter.java','AAAL23///ik='),(124,114,'2011-02-17 19:50:03','P',1,'Done','AAAL23///jA=',2310,5,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/PathFilter.java','AAAL23///io='),(124,1,'2011-02-17 19:15:35','P',1,'I would say:\n\n  @return {@code true} if the path length of this filter\n    matches the length of the current path of the supplied\n    TreeWalk.',NULL,2310,5,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/PathFilter.java','AAAL23///jA='),(127,1,'2011-02-17 19:15:35','P',1,'I would rather not generate a copy of the path right here just to test the length of it. We should expose a method on the TreeWalk that exports the path length.',NULL,2310,5,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/PathFilter.java','AAAL23///jE='),(122,1,'2011-02-17 19:15:35','P',1,'Why not a while loop with a condition?\n\n  while (tw.next()) {\n    if (f.isDone(tw))\n      return tw;\n    if (tw.isSubtree())\n      tw.enterSubtree();\n  }\n  return null;',NULL,2310,5,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL23///i8='),(122,114,'2011-02-17 19:50:03','P',1,'Done\n\nbleh, you\'re right.  Didn\'t think about this too much when I wrote it...','AAAL23///i8=',2310,5,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java','AAAL23///iY='),(61,8,'2011-01-29 22:55:41','P',1,'Private?',NULL,2311,1,'org.eclipse.jgit/src/org/eclipse/jgit/subtree/SubtreeContext.java','AAAL2n///YU='),(101,8,'2011-01-23 12:18:45','P',1,'split is a subcommand of subtree, not a jgit command by itself, so it is misleading. Even stranger is it when you do not supply a subcommand.',NULL,2312,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Subtree.java','AAAL2n///ck='),(80,8,'2011-01-29 22:55:12','P',1,'Document the content of the map. original => rewitten',NULL,2312,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/SubtreeSplitResult.java','AAAL2n///cU='),(11,4,'2011-01-23 23:58:31','P',1,'typo: s/relatd/related/',NULL,2315,2,'/COMMIT_MSG','AAAL2n///Z0='),(204,4,'2011-01-23 23:58:31','P',1,'trailing whitespace',NULL,2315,2,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/wizards/share/SharingWizardTest.java','AAAL2n///aA='),(275,4,'2011-01-23 23:58:31','P',1,'typo: s/headComitId/headCommitId/',NULL,2315,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/sharing/ExistingOrNewPage.java','AAAL2n///aE='),(816,4,'2011-01-26 00:19:06','P',1,'Done','AAAL2n///W0=',2318,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL2n///Q8='),(814,4,'2011-01-26 00:19:06','P',1,'Done','AAAL2n///W4=',2318,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL2n///RA='),(431,4,'2011-01-26 00:19:06','P',1,'Done','AAAL2n///Ww=',2318,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL2n///RE='),(191,4,'2011-01-26 00:19:06','P',1,'Done','AAAL2n///W8=',2318,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL2n///RI='),(816,1,'2011-01-25 00:15:17','P',1,'Style-nit: We prefer to import these names and use the short class name instead.',NULL,2318,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL2n///W0='),(814,1,'2011-01-25 00:15:17','P',1,'Style-nit: Make this class static, it doesn\'t need to hold onto the TransportHttp instance.',NULL,2318,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL2n///W4='),(191,1,'2011-01-25 00:15:17','P',1,'This should be moved into the HttpConfig object, so its part of the cached HttpConfig we obtain from the repository config file when no changes have been made to the file.',NULL,2318,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL2n///W8='),(431,1,'2011-01-25 00:15:17','P',1,'I think disableSslVerify is a better name for this method.',NULL,2318,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL2n///Ww='),(7,4,'2011-01-24 16:15:11','d',1,'how is this related to your change ?',NULL,2319,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/MylynCommitMessageProvider.java','AAAL2n///ZE='),(2,4,'2011-01-24 16:30:24','P',1,'please give your name without \"_\" and with proper case : s/ilya_ivanov/Ilya Ivanov/ as this is meant for the human reader',NULL,2319,2,'/COMMIT_MSG','AAAL2n///Y4='),(21,4,'2011-01-24 16:30:24','P',1,'- why do you switch from package dependency to bundle dependency ?\n- why do you switch version range ?',NULL,2319,2,'org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF','AAAL2n///Y0='),(7,4,'2011-01-24 16:30:24','P',1,'how is this related to your change ?',NULL,2319,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/MylynCommitMessageProvider.java','AAAL2n///Yw='),(14,4,'2011-01-24 22:39:50','P',1,'fix user name as mentioned in comment for patchset 2',NULL,2319,3,'/COMMIT_MSG','AAAL2n///XY='),(57,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///V0='),(156,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///Vc='),(132,49,'2011-01-25 18:08:15','P',1,'In deed it should be logged, and way it isn\'t?',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///Vg='),(196,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///VI='),(143,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///Vk='),(191,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///VM='),(109,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///Vo='),(187,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///VQ='),(96,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///Vs='),(183,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///VU='),(89,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///Vw='),(171,49,'2011-01-25 18:08:15','P',1,'style nit: we don\'t use curly brackets in single line blocks',NULL,2319,4,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///VY='),(11,4,'2011-01-26 00:04:48','P',1,'As far as I understand your current patchset you now use an explicit configuration if existant, please adapt this commit message accordingly',NULL,2319,5,'/COMMIT_MSG','AAAL2n///RU='),(96,4,'2011-01-26 00:04:48','P',1,'style nit: we don\'t use curly braces around single line blocks, more of these below',NULL,2319,5,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///R0='),(39,4,'2011-01-26 00:04:48','P',1,'typo: s/bugtraq/bugtracker/',NULL,2319,5,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///R4='),(132,4,'2011-01-26 00:04:48','P',1,'do not hide exception',NULL,2319,5,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///Ro='),(125,4,'2011-01-26 00:04:48','P',1,'typo: s/aviod/avoid/',NULL,2319,5,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///Rs='),(89,4,'2011-01-26 00:04:48','P',1,'style nit: no braces here',NULL,2319,5,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///Rw='),(176,4,'2011-01-26 00:04:48','P',1,'why do we need 2 local variables for the same purpose ?',NULL,2319,5,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/commit/TaskReferenceFactory.java','AAAL2n///RY='),(17,1,'2011-01-24 20:58:16','P',1,'PackWriter should disable this, shouldn\'t it?  IIRC pack-objects in C Git doesn\'t honor grafts when it creates the pack file.',NULL,2322,1,'/COMMIT_MSG','AAAL2n///YI='),(15,1,'2011-01-24 20:58:16','P',1,'Style-nit: Trailing whitespace.',NULL,2322,1,'/COMMIT_MSG','AAAL2n///YM='),(58,1,'2011-01-24 20:58:16','P',1,'These should be ObjectId because the mapping shouldn\'t be mutable.',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/GraftsDatabase.java','AAAL2n///YE='),(1268,1,'2011-01-24 20:58:16','P',1,'Should be ObjectId, as the mapping cannot be mutable.',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL2n///X8='),(1264,1,'2011-01-24 20:58:16','P',1,'Grafts in alternates don\'t apply.',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL2n///YA='),(157,1,'2011-01-24 20:58:16','P',1,'Because the number of grafts is low, I always thought we would implement grafts in RevWalk by just having the RevWalk\'s graft enable method lookup each of the RevCommits named as keys in the graft file, and assign their parents outright to the looked up RevCommit parents.\n\nThat way during traversal we aren\'t incurring this hit to look to see if each individual commit is part of the grafts file, its already been computed.  And actually that is part of the reason why we have this \"if (parents == null)\" test in parseCanonical.  We don\'t want to replace parents that have already been computed for us, even if they are currently different from what is in the real content we loaded.',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevCommit.java','AAAL2n///Xs='),(225,1,'2011-01-24 20:58:16','P',1,'Why does this variant of the constructor disable grafts, while another enables them?  This will result in a lot of confusion in the current code because some code uses this constructor just to reuse an existing reader between different related objects.\n\nI know the problem is you don\'t have the graft data available in this context.  But its still scary that the behavior of RevWalk differs based on the type of object we used to create it, and the Javadoc doesn\'t reflect this.',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java','AAAL2n///Xg='),(165,1,'2011-01-24 20:58:16','P',1,'Ouch.  Do we really need to burn a reserved bit flag on something that is so uncommon?',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java','AAAL2n///Xo='),(65,1,'2011-01-24 20:58:16','P',1,'Should be ObjectId so its immutable.',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileGraftsDataBase.java','AAAL2n///X0='),(123,8,'2011-01-24 22:47:50','d',1,'ouch',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileGraftsDataBase.java','AAAL2n///XI='),(65,8,'2011-01-24 22:47:16','d',1,'I only put ObjectId instances in there, so there aren\'t any mutable instances, right?\n\nThe List value however... is sometimes mutable. will fix.','AAAL2n///X0=',2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileGraftsDataBase.java','AAAL2n///XM='),(87,1,'2011-01-24 20:58:16','P',1,'grafts should be volatile, and use a volatile safe pattern here:\n\n  static State {\n    final FileSnapshot snapshot;\n    final Map... grafts;\n  }\n  private volatile State state;\n\n  State s = state;\n  if (s.isOutdated()) {\n    s = loadGrafts();\n    state = s;\n  }\n  return s.grafts;',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileGraftsDataBase.java','AAAL2n///Xw='),(403,1,'2011-01-24 20:58:16','P',1,'Style-nit: Put this all on one line:\n\n  /** @return the grafts file, from info/grafts */',NULL,2322,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL2n///X4='),(919,4,'2011-01-26 16:03:59','P',1,'I think we should sort outside the loop since then we only have to do it once',NULL,2324,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///O0='),(1113,4,'2011-01-26 16:04:29','d',1,'Done','AAAL2n///Ow=',2324,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///Oc='),(1091,4,'2011-01-26 16:04:26','d',1,'Done','AAAL2n///Os=',2324,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///Og='),(919,4,'2011-01-26 16:04:20','d',1,'Done','AAAL2n///O0=',2324,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///Ok='),(1091,4,'2011-01-26 16:03:59','P',1,'ordering could be improved to show most interesting states on top',NULL,2324,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///Os='),(1113,4,'2011-01-26 16:03:59','P',1,'typo: wrong resource key',NULL,2324,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL2n///Ow='),(509,4,'2011-01-25 15:52:30','P',1,'something went wrong with this id',NULL,2325,1,'org.eclipse.egit.ui/plugin.xml','AAAL2n///WU='),(71,49,'2011-01-25 18:15:47','P',1,'Lines 56-71 shouldn\'t be indented while they are inside if statement from in line 55?',NULL,2332,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareWithIndexActionHandler.java','AAAL2n///VA='),(351,49,'2011-01-25 18:15:47','P',1,'Please revert this formatting change',NULL,2332,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n///U0='),(338,49,'2011-01-25 18:15:47','P',1,'Please revert this formatting change',NULL,2332,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n///U4='),(303,49,'2011-01-25 18:15:47','P',1,'Please revert this formatting change',NULL,2332,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n///U8='),(565,49,'2011-01-25 18:15:47','P',1,'Please revert this formatting change',NULL,2332,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n///Us='),(496,49,'2011-01-25 18:15:47','P',1,'Please revert this formatting change',NULL,2332,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n///Uw='),(11,5,'2011-01-26 08:08:14','P',1,'\"rename the temp file ... and then rename it\" - there is a typo here, or? Shouldn\'t it be called: rename the temp file ... and the set it readonly?',NULL,2333,1,'/COMMIT_MSG','AAAL2n///Qs='),(266,44,'2011-01-26 15:44:52','P',1,'remove toString()',NULL,2334,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/sharing/ExistingOrNewPage.java','AAAL2n///PA='),(330,1,'2011-01-27 16:49:01','P',1,'This should have been caught on the first review when the method was added.  Our API package has the general convention of always returning \"this\" from a setter method.  We shouldn\'t have added a void set method in the first place.\n\nBut I\'m glad it was fixed!',NULL,2346,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/FetchCommand.java','AAAL2n///Gk='),(342,2,'2011-01-26 18:57:18','P',1,'Can you add something like \"Sets the specification of annotated tag behavior during fetch\"',NULL,2350,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/FetchCommand.java','AAAL2n///L0='),(67,49,'2011-01-27 19:45:31','P',1,'This code is somehow connected with topic of change?\r\n\r\nI suppose not, because even when it is commented the non-workspace files and folders appears in sync-view',NULL,2354,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/factories/GitAdapterFactory.java','AAAL2n///Fw='),(62,49,'2011-01-28 18:41:53','P',1,'If you replace this line with those:\r\n\r\nIFile res = root.getFileForLocation(obj.getLocation());\r\nif (res == null)\r\n	res = root.getFile(obj.getLocation());\r\nreturn res;\r\n\r\nYou will get an default icon for non-workspace files ;)',NULL,2354,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/factories/GitAdapterFactory.java','AAAL2n///Ao='),(124,49,'2011-02-01 16:38:19','P',1,'Done','AAAL2n//+5M=',2355,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SynchronizeWithActionHandler.java','AAAL2n//+1M='),(130,49,'2011-02-01 16:38:19','P',1,'Done','AAAL2n//+5I=',2355,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SynchronizeWithActionHandler.java','AAAL2n//+1Q='),(130,4,'2011-01-31 22:50:59','P',1,'typo in method name s/createSyncRrepoEntity/createSyncRepoEntity/',NULL,2355,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SynchronizeWithActionHandler.java','AAAL2n//+5I='),(124,4,'2011-01-31 22:50:59','P',1,'typo ? s/createSyncRrepoEntity/createSyncReposEntity/',NULL,2355,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SynchronizeWithActionHandler.java','AAAL2n//+5M='),(41,49,'2011-01-27 19:48:51','P',1,'I would prefer to have this formatting taken from configuration or at least from locales instead of hard-coding it.',NULL,2356,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelObjectContainer.java','AAAL2n///Fo='),(305,2,'2011-01-28 17:36:29','P',1,'Can you return \'this\' like the other setters?',NULL,2371,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java','AAAL2n///BI='),(1110,46,'2011-02-01 07:07:38','P',0,'Done','AAAL2n//+6s=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+34='),(858,46,'2011-02-01 07:06:44','P',1,'Done','AAAL2n//+64=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4c='),(850,46,'2011-02-01 07:06:44','P',1,'Done','AAAL2n//+6k=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4g='),(1066,46,'2011-02-01 07:06:44','P',1,'Done','AAAL2n//+6o=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4I='),(820,46,'2011-02-01 07:06:44','P',1,'No particular reason. It may be easier to put something in between later.','AAAL2n//+6g=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4k='),(1000,46,'2011-02-01 07:06:44','P',1,'renamed left... to base... and right... to compare...','AAAL2n//+6Q=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4M='),(816,46,'2011-02-01 07:06:44','P',1,'Done','AAAL2n//+68=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4o='),(899,46,'2011-02-01 07:06:44','P',1,'No, but unfortunately, this API is not type-safe.','AAAL2n//+6U=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4Q='),(805,46,'2011-02-01 07:06:44','P',1,'Done','AAAL2n//+6Y=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4s='),(879,46,'2011-02-01 07:06:44','P',1,'Done','AAAL2n//+6w=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4U='),(802,46,'2011-02-01 07:06:44','P',1,'Done','AAAL2n//+6c=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4w='),(861,46,'2011-02-01 07:06:44','P',1,'Done','AAAL2n//+60=',2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+4Y='),(861,4,'2011-01-31 21:30:17','P',1,'style nit: no braces',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+60='),(858,4,'2011-01-31 21:30:17','P',1,'style nit: no braces',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+64='),(816,4,'2011-01-31 21:30:17','P',1,'typo: s/abd/and/',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+68='),(802,4,'2011-01-31 21:30:17','P',1,'maybe better call this \"addedPaths\" instead of \"leftOnlyPaths\" ?',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+6c='),(820,4,'2011-01-31 21:30:17','P',1,'why these funny steps for the int values ?',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+6g='),(850,4,'2011-01-31 21:30:17','P',1,'style nit: no braces',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+6k='),(1066,4,'2011-01-31 21:30:17','P',1,'style nit: no braces',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+6o='),(1000,4,'2011-01-31 21:30:17','P',1,'are there better names than left and right here ?',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+6Q='),(1110,4,'2011-01-31 21:30:17','P',0,'there is no left and right tree anymore, only one tree is displayed ...',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+6s='),(899,4,'2011-01-31 21:30:17','P',1,'any example what unknown could be ?',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+6U='),(879,4,'2011-01-31 21:30:17','P',1,'style nit: no braces',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+6w='),(805,4,'2011-01-31 21:30:17','P',1,'maybe better call this \"deletedPaths\" instead of \"rightOnly\" ?',NULL,2372,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CompareTreeView.java','AAAL2n//+6Y='),(57,49,'2011-01-29 12:49:50','P',1,'When we create IFile object for non-workspace file method exist() returns false. Can we somehow bypass this?',NULL,2373,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/compare/GitLocalCompareInput.java','AAAL2n//+/0='),(215,5,'2011-01-31 07:19:50','P',1,'path.substring(lastSlash+1) maybe better here.',NULL,2374,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelCache.java','AAAL2n//++M='),(206,5,'2011-01-31 07:19:50','P',1,'Is that correct? On a file \'a/b/c/f.txt\' wont this path.split..[0] construct return only \'a\' (instead of \'a/b/c\' what I expect is what you want). Maybe its better to work with lastIndexOf(\'/\') and substring().\nlastSlash = path.lastIndexOf(\'/\');\nif (lastSlash>-1) pathKey = path.substring(0, lastSlash);',NULL,2374,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelCache.java','AAAL2n//++Q='),(184,5,'2011-01-31 07:19:50','P',1,'isn\'t it faster to ask for path.indexOf(\'/\')? We don\'t need all these substrings beeing created and we can stop after the first occurence.',NULL,2374,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelCache.java','AAAL2n//++U='),(215,49,'2011-01-31 09:01:02','P',1,'True, we can extract this value.','AAAL2n//++M=',2374,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelCache.java','AAAL2n//+90='),(206,49,'2011-01-31 09:01:02','P',1,'Here we want to get a \"root node\" (\'a\' in yours example) to check it was already created or we should create it. Then we add a child to this node (child format is b/c/f.txt, and inside addChild() we do exactly the same.\r\n\r\nYes we can use here substring(0, indexOf(\"/\")) instead of splitting.','AAAL2n//++Q=',2374,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelCache.java','AAAL2n//+94='),(65,5,'2011-01-31 07:19:50','P',1,'Same argument as in last file: you are only interested in the location of the last slash ... I guess indexOf+substring would be faster.',NULL,2374,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelCacheTree.java','AAAL2n//++I='),(65,49,'2011-01-31 09:01:02','P',1,'Done','AAAL2n//++I=',2374,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelCacheTree.java','AAAL2n//+9w='),(363,2,'2011-02-01 19:50:12','d',1,'style-nit: spacing',NULL,2393,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewTest.java','AAAL2n//+0Y='),(100,4,'2011-02-02 00:06:56','P',1,'style nit: no braces here',NULL,2394,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/ProjectUtils.java','AAAL2n//+zQ='),(63,4,'2011-02-02 00:06:56','P',1,'style nit: no braces here',NULL,2394,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/ProjectUtils.java','AAAL2n//+zU='),(59,4,'2011-02-02 00:06:56','P',1,'style nit: no braces here',NULL,2394,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/ProjectUtils.java','AAAL2n//+zY='),(12,79,'2011-02-02 22:37:48','P',1,'Done','AAAL2n//+yM=',2397,1,'/COMMIT_MSG','AAAL2n//+v8='),(12,1,'2011-02-02 06:55:08','P',1,'The key you use should be mentioned in the commit message.\n\nI like this approach, because its similar to the commit-msg hook that Gerrit comes with; you install it in your repository and it always updates your commits.  The downside is, the hook fires even if you don\'t want a Change-Id in your message.\n\nBut I\'m not sure that is a problem.  I think if your upstream is using Gerrit Code Review, you probably just always want the Change-Id automatically inserted in any commit you make in this repository.  At least that\'s my use case.  :-)',NULL,2397,1,'/COMMIT_MSG','AAAL2n//+yM='),(17,49,'2011-02-03 14:19:28','P',1,'remove this new line',NULL,2407,1,'/COMMIT_MSG','AAAL2n//+vo='),(298,49,'2011-02-03 14:19:28','P',1,'please remove brackets since we don\'t use brackets for single line statements',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitGraphTable.java','AAAL2n//+vg='),(290,49,'2011-02-03 14:19:28','P',1,'this line should be inside if (oldList != list), or outside?\r\nIf inside, please add brackets otherwise remove indentation.',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitGraphTable.java','AAAL2n//+vk='),(720,49,'2011-02-03 14:19:28','P',1,'remove brackets',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+u0='),(660,49,'2011-02-03 14:19:28','P',1,'please remove empty line',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+u4='),(667,49,'2011-02-03 14:19:28','P',1,'this method looks exactly the same as getAncestorTag(), maybe you can extract common code into private method?',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+u8='),(656,49,'2011-02-03 14:19:28','P',1,'remove brackets',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+vA='),(334,49,'2011-02-03 14:19:28','P',1,'please remove brackets',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+vc='),(653,49,'2011-02-03 14:19:28','P',1,'remove brackets',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+vE='),(644,49,'2011-02-03 14:19:28','P',1,'brackets, once again ;)',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+vI='),(448,49,'2011-02-03 14:19:28','P',1,'one empty line between methods is enough ;)',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+vM='),(434,49,'2011-02-03 14:19:28','P',1,'please remove brackets',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+vQ='),(432,49,'2011-02-03 14:19:28','P',1,'please remove brackets',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+vU='),(420,49,'2011-02-03 14:19:28','P',1,'please remove brackets',NULL,2407,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL2n//+vY='),(8,46,'2011-02-07 07:13:10','P',1,'Is this supposed to fix bug 326638? If yes, please add the bug number here.',NULL,2415,1,'/COMMIT_MSG','AAAL23///+A='),(8,116,'2011-02-07 15:28:13','d',1,'Done','AAAL23///+A=',2415,1,'/COMMIT_MSG','AAAL23///9g='),(3,46,'2011-02-07 07:13:10','P',1,'Shouldn\'t we use 2011 here?',NULL,2415,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromHEADOperation.java','AAAL23///+Q='),(3,116,'2011-02-07 15:12:14','d',1,'The initial class implementation is copied from other EGit class.\nThis is actually not my own copyright... so I\'m not sure I should modify it. Or should I? :)','AAAL23///+Q=',2415,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromHEADOperation.java','AAAL23///9s='),(3,46,'2011-02-07 07:13:10','P',1,'2011',NULL,2415,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromIndexOperation.java','AAAL23///+M='),(173,46,'2011-02-07 07:13:10','P',1,'Please use proper formatting here (spaces instead of tabs)',NULL,2415,1,'org.eclipse.egit.ui/plugin.xml','AAAL23///+I='),(173,116,'2011-02-07 15:27:46','d',1,'Done','AAAL23///+I=',2415,1,'org.eclipse.egit.ui/plugin.xml','AAAL23///9k='),(2,46,'2011-02-07 07:13:10','P',1,'2011',NULL,2415,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CheckoutResourcesFromHEADAction.java','AAAL23///+E='),(48,4,'2011-02-16 23:45:45','P',1,'this line looks a bit wide, do you use the proper formatting settings ?',NULL,2415,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromHEADOperation.java','AAAL23///l8='),(52,4,'2011-02-16 23:45:45','P',1,'style nit: one before the comment is sufficient',NULL,2415,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromHEADOperation.java','AAAL23///mA='),(70,4,'2011-02-16 23:45:45','P',1,'string should be externalized',NULL,2415,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromHEADOperation.java','AAAL23///mE='),(67,4,'2011-02-16 23:45:45','P',1,'typo: s/Let\' //',NULL,2415,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromHEADOperation.java','AAAL23///mI='),(33,4,'2011-02-16 23:45:45','P',1,'I would prefer if this class would be named \"ReplaceWithHeadOperation\" as that\'s what this operation is supposed to do',NULL,2415,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromHEADOperation.java','AAAL23///mM='),(29,4,'2011-02-16 23:45:45','P',1,'class should be named ReplaceWithIndexOperation',NULL,2415,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromIndexOperation.java','AAAL23///l0='),(26,4,'2011-02-16 23:45:45','P',1,'this is not precise, you are replacing the changes in the working tree with the staged file contents',NULL,2415,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceFromIndexOperation.java','AAAL23///l4='),(31,4,'2011-02-16 23:45:45','P',1,'improve key name and value:\n\nReplaceWithHead_label=HEAD revision\n\n- this yields the menu entry \"Replace with > HEAD revision\"\n- this looks better than \"Replace with > From HEAD revision\"',NULL,2415,3,'org.eclipse.egit.ui/plugin.properties','AAAL23///lw='),(170,4,'2011-02-16 23:45:45','P',1,'improve id to \n\"...ReplaceResourcesWithHeadAction\"',NULL,2415,3,'org.eclipse.egit.ui/plugin.xml','AAAL23///lk='),(11,4,'2011-02-16 23:45:45','P',1,'don\'t unnecessarily touch whitespace (also more occurrences below)\n\nyou should use the formatter settings coming with the project',NULL,2415,3,'org.eclipse.egit.ui/plugin.xml','AAAL23///ls='),(16,4,'2011-02-16 23:45:45','P',1,'use camel case for class names',NULL,2415,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CheckoutResourcesFromHEADAction.java','AAAL23///lg='),(95,4,'2011-03-01 15:41:28','d',1,'same problem as above: use NLS.bind() to build the sentence',NULL,2415,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceWithHeadOperation.java','AAAL3H///2U='),(80,4,'2011-03-01 15:40:53','d',1,'don\'t use \"+\" to concatenate translatable texts as grammar might be different in other languages, instead use NLS.bind():\n\n NLS.bind(CoreText.ReplaceWithHeadOperation_WritingError, f.getPath())',NULL,2415,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/ReplaceWithHeadOperation.java','AAAL3H///2Y='),(62,4,'2011-03-01 16:01:49','P',1,'Use NLS.bind() to bind arguments :\n\n Can\'t clear indexed version of file {0}',NULL,2415,5,'org.eclipse.egit.core/src/org/eclipse/egit/core/coretext.properties','AAAL3H///2M='),(61,4,'2011-03-01 16:01:49','P',1,'Use NLS.bind() to bind arguments :\n\n Can\'t write to file {0}',NULL,2415,5,'org.eclipse.egit.core/src/org/eclipse/egit/core/coretext.properties','AAAL3H///2Q='),(180,4,'2011-03-01 16:01:49','P',1,'make case consistent with other menus:\n\ns/HEAD revision/HEAD Revision/',NULL,2415,5,'org.eclipse.egit.ui/plugin.properties','AAAL3H///2E='),(76,4,'2011-03-01 16:01:49','P',1,'I think if this should never happen we should throw an exception',NULL,2415,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/DiscardChangesActionHandler.java','AAAL3H///2I='),(196,5,'2011-03-02 16:53:43','P',1,'I think this code should be in JGit. What you suggest is a \"git checkout -- <path>\", right? That\'s pure git logic and we should try to  keep such things in JGit. A good place for that would be in  CheckoutCommand. If we would add a method \"addPath(String path)\" there then we could move this code to the right location. Then other user\'s of the JGit API could make use of this code.\n\nSorry, I know I am late with this comment - and I was about to let commit this change and refactor it directly afterwards. But: officially copying code from EGit to JGit is because of the licenses not so easy.\nSo better put the code right now.',NULL,2415,6,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/DiscardChangesOperation.java','AAAL3H///xw='),(261,4,'2011-02-06 01:07:41','P',1,'style nit: trailing whitespace',NULL,2416,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL23////c='),(53,1,'2011-02-04 15:06:24','P',1,'Our pom is still using 0.1.41.  I\'d like to rev the pom at the same time as we declare this dependency.  Maybe defer until 0.12 cycle?',NULL,2417,1,'.eclipse_iplog','AAAL2n//+pM='),(58,1,'2011-02-04 15:06:24','P',1,'Drop this CQ, we don\'t need it yet.',NULL,2417,1,'.eclipse_iplog','AAAL2n//+pQ='),(47,1,'2011-02-04 15:06:24','P',1,'Drop this CQ.  We don\'t need it yet.',NULL,2417,1,'.eclipse_iplog','AAAL2n//+pU='),(81,49,'2011-02-14 09:19:02','P',1,'This is result of cgit merge algorithm, I didn\'t check results of merging in non-confliting files. I\'ll remove this line and push a new patch','AAAL23///wo=',2424,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/GitModelSynchronizeParticipant.java','AAAL23///wc='),(81,2,'2011-02-14 04:12:41','P',1,'Why are you adding this twice?',NULL,2424,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/GitModelSynchronizeParticipant.java','AAAL23///wo='),(247,4,'2011-02-16 23:57:27','P',1,'unused try catch block',NULL,2443,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java','AAAL23///lM='),(139,4,'2011-02-16 23:57:27','P',1,'what is this catch good for if you immediately rethrow ?',NULL,2443,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java','AAAL23///lQ='),(92,4,'2011-02-16 23:57:27','P',1,'explain that as well like you did for KEEP',NULL,2443,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java','AAAL23///lU='),(1,49,'2011-02-07 19:42:42','P',1,'Copyright header is missing',NULL,2445,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/shared/AbstractSharedCommandHandler.java','AAAL23///9E='),(1,49,'2011-02-07 19:42:42','P',1,'copyright header is missing',NULL,2445,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchGerritChangePage.java','AAAL23///9A='),(1,49,'2011-02-07 19:42:42','P',1,'Missing copyright header',NULL,2445,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchGerritChangeWizard.java','AAAL23///88='),(355,2,'2011-02-08 00:06:59','P',1,'This should be refactored into a command and out of the wizard.',NULL,2447,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchGerritChangePage.java','AAAL23///8Y='),(140,46,'2011-02-08 14:24:03','P',1,'Use ConfigConstants for \"branch\" \"merge\", and \"remote\"',NULL,2456,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java','AAAL23///7Y='),(144,46,'2011-02-08 17:17:40','P',1,'These NON-NLS markers are pointless now...',NULL,2456,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java','AAAL23///7A='),(303,1,'2011-02-12 02:53:23','P',1,'I think this implies ref cannot be null at this point.  Which might be correct, so I wonder if we shouldn\'t drop the \"ref != null\" test above just so the code isn\'t reading like we are risking an NPE here.\n\n(I\'m pretty sure that symbolic.get() won\'t return null, and that resolve() also won\'t return null, and thus that the ref != null test above is wrong.)',NULL,2462,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java','AAAL23///1o='),(303,1,'2011-02-15 14:32:24','P',1,'I think it only returns null when the symbolic reference requires too many traversals to resolve (and we start to suspect we are in a loop). This isn\'t very common, but it can happen.','AAAL23///tU=',2462,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java','AAAL23///sw='),(303,51,'2011-02-15 08:38:02','P',1,'Actually, there are a couple of conditions where resolve may return null, so I\'m wondering now why this solution worked at all for me :(','AAAL23///1o=',2462,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java','AAAL23///tU='),(128,79,'2011-02-14 15:03:49','P',1,'The above lines are indented with spaces (but should be with tabs).',NULL,2472,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GlobalConfigurationPreferencePage.java','AAAL23///v0='),(11,116,'2011-02-12 11:36:27','d',0,'Done','AAAL23///1Y=',2479,1,'org.eclipse.egit.ui/plugin.xml','AAAL23///1E='),(11,11,'2011-02-12 07:20:11','P',0,'Please fix \'TAB vs space\' changes.',NULL,2479,1,'org.eclipse.egit.ui/plugin.xml','AAAL23///1Y='),(61,11,'2011-02-12 13:34:22','P',1,'... and these two lines up, inside try?',NULL,2479,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL23///00='),(49,11,'2011-02-12 13:34:22','P',1,'Why not move this down, inside try block...',NULL,2479,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL23///04='),(64,11,'2011-02-12 13:34:22','P',1,'return statement as a last statement in void method?',NULL,2479,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL23///08='),(49,116,'2011-02-12 18:28:20','d',1,'Done','AAAL23///04=',2479,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL23///0A='),(43,116,'2011-02-12 18:28:19','d',1,'Done','AAAL23///1A=',2479,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL23///0E='),(43,11,'2011-02-12 13:34:22','P',1,'Inconsistent use of \'final\' keyword  inside method.',NULL,2479,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL23///1A='),(64,116,'2011-02-12 18:28:23','d',1,'Done','AAAL23///08=',2479,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL23///z4='),(61,116,'2011-02-12 18:28:21','d',1,'Done','AAAL23///00=',2479,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL23///z8='),(20,11,'2011-02-12 19:23:43','d',1,'we don\'t use mailtos',NULL,2479,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitFileRevisionReference.java','AAAL23///z0='),(20,11,'2011-03-17 09:11:25','P',1,'drop this mailto please',NULL,2479,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitFileRevisionReference.java','AAAL3n///vU='),(8,4,'2011-04-06 21:25:22','P',1,'this should rather be : initial implementation\n\nsame issue in all other new files',NULL,2479,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitFileRevisionReference.java','AAAL4H///3M='),(2,4,'2011-04-06 21:25:22','P',1,'Copyright statement is missing',NULL,2479,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitFileRevisionReference.java','AAAL4H///3w='),(256,11,'2011-03-17 09:11:25','P',1,'may be a nitpick, but anyway - this line actually was not changed',NULL,2479,4,'org.eclipse.egit.ui/plugin.properties','AAAL3n///vE='),(45,4,'2011-04-06 21:25:22','P',1,'I don\'t get why any EGit action label has to start with \"EGit: \" this looks very weird',NULL,2479,4,'org.eclipse.egit.ui/plugin.properties','AAAL4H///2E='),(8,4,'2011-04-06 21:25:22','P',1,'this should rather be : initial implementation',NULL,2479,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL4H///3g='),(2,4,'2011-04-06 21:25:22','P',1,'missing copyright, see other sources for an example',NULL,2479,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithHeadAction.java','AAAL4H///3s='),(2,4,'2011-04-06 21:25:22','P',1,'missing copyright',NULL,2479,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithParentAction.java','AAAL4H///3o='),(2,4,'2011-04-06 21:25:22','P',1,'missing copyright',NULL,2479,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/CompareSelectedWithWorkspaceAction.java','AAAL4H///3k='),(2,4,'2011-04-06 21:25:22','P',1,'missing copyright',NULL,2479,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/OpenFileAtHeadRevisionAction.java','AAAL4H///3c='),(29,4,'2011-04-06 21:25:22','P',1,'typo s/it\'s/its/',NULL,2479,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/OpenFileAtRevisionAction.java','AAAL4H///3U='),(2,4,'2011-04-06 21:25:22','P',1,'missing copyright',NULL,2479,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/OpenFileAtRevisionAction.java','AAAL4H///3Y='),(1,4,'2011-04-06 21:25:22','P',1,'missing copyright',NULL,2479,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/OpenWorkspaceVersionAction.java','AAAL4H///3Q='),(6,4,'2011-02-12 02:12:36','P',1,'no I don\'t expect that, if you want I can skip this (did the same way last time)','AAAL23///2s=',2483,1,'org.eclipse.jgit.console/META-INF/MANIFEST.MF','AAAL23///2c='),(6,1,'2011-02-12 02:03:54','P',1,'Are we expecting to do a 0.11.3 release?\n\nUsually I merge the 0.11.1 unqualified version into master, and then update versions to be 0.12.0.qualifier.  If we need to go back and do changes to stable-0.11 we would create the 0.11.2.qualifier at that time.',NULL,2483,1,'org.eclipse.jgit.console/META-INF/MANIFEST.MF','AAAL23///2s='),(7,100,'2011-02-17 19:58:08','P',1,'The first line of the commit message should be short and precise, e.g. \"Add testcase for CloneCommand\".\r\n\r\nThe subsequent lines should then provide detailed information about the change, e.g. \"A test method for cloning to a bare repository is added to class CloneCommandTest.\"\r\n\r\nPlease also add Change-Id and Signed-off-by to the message:\r\nChange-Id: I296f9259dd418866a16c9b45ffbc0c3e7f0efd07\r\nSigned-off-by: Ketan Padegaonkar<KetanPadegaonkar@gmail.com>',NULL,2491,1,'/COMMIT_MSG','AAAL23///iU='),(114,100,'2011-02-17 19:58:08','P',1,'Test methods should start with \"test\".',NULL,2491,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java','AAAL23///iA='),(120,100,'2011-02-17 19:58:08','P',1,'This setting is wrong. The original repository is not bare.',NULL,2491,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java','AAAL23///iE='),(115,100,'2011-02-17 19:58:08','P',1,'In order to create a bare repository, you have to perform the following: Git.init().setDirectory(directory).setBare(true).call();',NULL,2491,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java','AAAL23///iI='),(11,4,'2011-02-15 21:15:07','P',1,'typo: s/existance/existence/',NULL,2492,3,'/COMMIT_MSG','AAAL23///qk='),(7,1,'2011-02-14 15:12:03','d',1,'What is wrong about it, and why is your new version correct?',NULL,2495,1,'/COMMIT_MSG','AAAL23///vs='),(127,1,'2011-02-14 15:14:07','d',1,'If name doesn\'t start with R_HEADS because later we prefix it with R_HEADS when we create the branch, we should be prefixing it here by R_HEADS too, rather than relying on the search path code buried within RefDatabase to find it.',NULL,2495,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CreateBranchCommand.java','AAAL23///vo='),(247,4,'2011-02-19 21:54:12','P',1,'typo in method name\n\ns/InWorksaceModel/InWorkspaceModel/',NULL,2500,3,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/synchronize/SynchronizeViewTest.java','AAAL23///ew='),(2782,3,'2011-02-21 17:40:09','d',1,'this seems to be indented a lot further over than the surrounding space',NULL,2503,1,'org.eclipse.egit.ui/plugin.xml','AAAL23///cc='),(91,3,'2011-02-21 17:43:18','d',1,'Why define these outside the try block? They\'re not used in the finally or any catch statements, nor are they used elsewhere.',NULL,2503,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SwitchToMenu.java','AAAL23///cU='),(52,3,'2011-02-21 17:53:01','P',1,'This could be a configurable value in the future - some people have bigger screens than others',NULL,2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SwitchToMenu.java','AAAL23///cY='),(52,46,'2011-02-22 08:25:12','P',1,'Good idea.','AAAL23///cY=',2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SwitchToMenu.java','AAAL23///ZQ='),(117,3,'2011-02-21 17:53:01','P',1,'This doc has changed, but no code diffs. Is there any code which has a dependency on it?',NULL,2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL23///cM='),(99,3,'2011-02-21 17:53:01','P',1,'Is this an eGit convention? I\'d have used  baseref == null ? null : baseref.getName()  to avoid the negation.',NULL,2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL23///cQ='),(117,46,'2011-02-22 08:25:12','P',1,'The doc was wrong.','AAAL23///cM=',2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL23///ZI='),(99,46,'2011-02-22 08:25:12','P',1,'Done','AAAL23///cQ=',2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL23///ZM='),(974,3,'2011-02-21 17:53:01','P',1,'Why do we have commit messages in here if we are implementing  \'switch to\'?',NULL,2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL23///b0='),(798,3,'2011-02-21 17:53:01','P',1,'What\'s the significance of the hashes in this message?',NULL,2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL23///b8='),(177,3,'2011-02-21 17:53:01','P',1,'Why is Reference capitalised and branch and tag are not?',NULL,2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL23///cI='),(974,46,'2011-02-22 08:25:12','P',1,'This line is not part of this change.','AAAL23///b0=',2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL23///Y8='),(798,46,'2011-02-22 08:25:12','P',1,'This line is not part of this change.','AAAL23///b8=',2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL23///ZA='),(177,46,'2011-02-22 08:25:12','P',1,'This line is not part of this change.','AAAL23///cI=',2503,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL23///ZE='),(122,46,'2011-02-22 11:14:01','P',1,'Yes.','AAAL23///YY=',2503,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL23///YA='),(99,46,'2011-02-22 11:14:01','P',1,'This code is not part of this change.','AAAL23///Yg=',2503,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL23///YE='),(99,3,'2011-02-22 10:49:29','P',1,'I\'d personally rather see an == null rather than a != null and then flip the branches mentally, which was the original thought (rather than using an in-line tertiary if operator vs an if statement), in other words:\n\nif(baseref==null)\n  this.mybaseref = null\nelse\n  this.mybaseref = baseref.getName()\n\nor\n\nthis.mybaseref = (baseref==null ? null : baseref.getName())\n\nI\'m fine with the ? operator though',NULL,2503,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL23///Yg='),(122,3,'2011-02-22 10:49:29','P',1,'Is this comment change supposed to be part of this changeset?',NULL,2503,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchPage.java','AAAL23///YY='),(46,46,'2011-02-22 11:14:01','P',0,'Yes','AAAL23///YU=',2503,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchWizard.java','AAAL23///YI='),(46,3,'2011-02-22 10:49:29','P',0,'Is this comment change supposed to be part of this changeset?',NULL,2503,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/CreateBranchWizard.java','AAAL23///YU='),(2401,49,'2011-03-23 15:48:13','P',1,'White space style nit',NULL,2503,7,'org.eclipse.egit.ui/plugin.xml','AAAL3n//+vY='),(53,49,'2011-03-23 15:48:13','P',1,'I think that in feature this should be configurable via preferences.',NULL,2503,7,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SwitchToMenu.java','AAAL3n//+vc='),(2401,4,'2011-03-24 01:08:19','P',1,'trailing whitespace',NULL,2503,8,'org.eclipse.egit.ui/plugin.xml','AAAL3n//+oo='),(277,4,'2011-02-21 22:28:25','P',1,'we should replace that with the dependency from orbit as soon as a stable build is available containing the version we need.',NULL,2515,6,'pom.xml','AAAL23///aQ='),(2815,2,'2011-02-16 17:45:02','P',1,'whitespace nit',NULL,2516,1,'org.eclipse.egit.ui/plugin.xml','AAAL23///nI='),(2814,2,'2011-02-16 17:45:02','P',1,'whitespace nit',NULL,2516,1,'org.eclipse.egit.ui/plugin.xml','AAAL23///nM='),(10,4,'2011-02-17 06:06:59','d',1,'could you add a description what issues this is fixing ?',NULL,2517,1,'/COMMIT_MSG','AAAL23///k0='),(34,4,'2011-02-17 06:03:44','d',1,'style nit: remove this extra blank line (more of these below)',NULL,2517,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/internal/synchronize/mapping/GitChangeSetSorterTest.java','AAAL23///k8='),(27,4,'2011-02-17 06:02:57','d',1,'style nit: trailing whitespace',NULL,2517,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/internal/synchronize/mapping/GitChangeSetSorterTest.java','AAAL23///lA='),(17,4,'2011-02-17 06:05:41','d',1,'style nit: trailing whitespace',NULL,2517,1,'org.eclipse.egit.ui.test/src/org/eclipse/jgit/revwalk/MockRevCommit.java','AAAL23///k4='),(428,4,'2011-02-17 14:03:08','d',1,'something is missing in this sentence\n\ns/build the asynchronously/build the file diffs asynchronously/',NULL,2518,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL23///kk='),(11,1,'2011-02-17 17:56:26','P',1,'I wonder if the better solution is to create a ConnectionFactory class within TransportGitSsh and use a setConnectionFactory method. Then callers can still use Transport.open() to get a Transport instance, and if it is an SSH type set the factory, and if its not, leave it alone. This frees callers from needing to parse the URIish on their own and determine the protocol that JGit will use.\n\nIt might be a few more lines of code to add the factory, but the extra level of indirection might be useful.\n\nA different approach would be to start removing the JSch information from TransportGitSsh and make a slightly more generic RemoteCommandConnection (by extracting TransportGitSsh.Connection into a new top level class), and rename TransportGitSsh to TransportGitRemoteCommand. Then we can hide all of the JSch stuff inside of a JSchRemoteCommandConnection and start to free JGit from only supporting JSch. (I\'d like to also support MINA SSHD client as it looks to be a more solid implementation.)',NULL,2519,1,'/COMMIT_MSG','AAAL23///jg='),(173,1,'2011-02-17 17:56:26','P',1,'Empty Javadoc to get around API documenting is pointless. We require documentation for a reason, so implementors know what they need to implement the abstraction, or callers know how to use it.',NULL,2519,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL23///jk='),(806,4,'2011-02-17 22:22:05','P',1,'broken sentence',NULL,2520,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitMessageViewer.java','AAAL23///hg='),(79,4,'2011-02-17 22:22:05','P',1,'broken formatting',NULL,2520,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GenerateHistoryJob.java','AAAL23///hc='),(77,1,'2011-02-17 17:59:20','P',1,'These options are exclusive. If more than one is given, its an error. Maybe instead write:\n\n  ResetType mode = null;\n\n  if (soft)\n    mode = selectMode(mode, ResetType.SOFT);\n  if (hard)\n    mode = selectMode(mode, ResetType.HARD);\n  ...\n\n  private static ResetType selectMode(ResetType mode, ResetType want) {\n    if (mode != null)\n      throw die(\"....\");\n    return want;\n  }',NULL,2523,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Reset.java','AAAL23///jU='),(72,1,'2011-02-17 17:59:20','P',1,'Style-nit: Space after if',NULL,2523,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Reset.java','AAAL23///jY='),(153,1,'2011-02-21 17:51:15','P',1,'Instead of a null test here, we should have a NO_REFS empty array constant and initialize refs in the constructor to it. Then we don\'t need to worry about null here, or in getRef().',NULL,2556,1,'org.eclipse.jgit/src/org/eclipse/jgit/revplot/PlotCommit.java','AAAL23///cE='),(220,49,'2011-02-23 18:20:50','P',1,'Done','AAAL23///U8=',2560,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelObjectContainer.java','AAAL23///Qg='),(220,6,'2011-02-23 13:04:39','P',1,'The usage of a static import is here in inconsistent with ObjectId.zeroId() above and below.',NULL,2560,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelObjectContainer.java','AAAL23///U8='),(7,4,'2011-02-21 23:26:47','P',1,'typo: s/imcomming/incoming/',NULL,2561,1,'/COMMIT_MSG','AAAL23///Z4='),(337,9,'2011-02-24 10:26:38','P',1,'Done','AAAL23///Qo=',2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///Oc='),(325,9,'2011-02-24 10:26:38','P',1,'Done. Will not put nulls into noteMaps','AAAL23///Qw=',2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///Og='),(307,9,'2011-02-24 10:26:38','P',1,'Done','AAAL23///Qs=',2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///P0='),(218,9,'2011-02-24 10:26:38','P',1,'if getNoteMap() returns null we should not put it into the noteMaps. Done','AAAL23///Q0=',2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///P4='),(205,9,'2011-02-24 10:26:38','P',1,'Done.','AAAL23///Q8=',2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///P8='),(218,1,'2011-02-23 17:58:23','P',1,'Since getNoteMap() can return null, does it make sense to put a null NoteMap in the noteMaps? Or should we omit that entry?\n\nIf we are going to put it, maybe its better to have getNoteMap() return an empty NoteMap instead of null, so we don\'t need to worry about null pointer checks.',NULL,2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///Q0='),(94,1,'2011-02-23 17:58:23','P',1,'Why are we using a new RevWalk and a new ObjectReader here? The base class has both already. Can we reuse those instead?',NULL,2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///Q4='),(205,1,'2011-02-23 17:58:23','P',1,'Do you mean\n\n  !additionalNoteRefs.isEmpty()\n\nHere? Its always not null, so the last part is always true.',NULL,2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///Q8='),(94,9,'2011-02-24 10:26:38','P',1,'Right we should reuse them. The RevWalk I found but I can\'t find an ObjectReader in the base class(es)','AAAL23///Q4=',2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///QA='),(337,1,'2011-02-23 17:58:23','P',1,'Why are you using RawText? The only reason to use it here is to have it split the lines up into strings for you... but then you go and convert the entire file to a string and split that manually.\n\nEither use RawText to obtain the string lines one at a time (and thus rely on its LF splitting logic), or pass the whole blob through RawParseUtils.decode():\n\n  String s = RawParseUtils.decode(reader\n    .open(blobId)\n    .getBytes(Integer.MAX_VALUE));',NULL,2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///Qo='),(307,1,'2011-02-23 17:58:23','P',1,'Style-nit:\n\n  atLeastOnePrinted |= printedNode\n\nis shorter.',NULL,2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///Qs='),(325,1,'2011-02-23 17:58:23','P',1,'This NPEs if the note ref doesn\'t exist because getNoteMap() returned null. Either change getNoteMap() to return an empty NoteMap, or don\'t put the null NoteMap into the noteMaps collection.',NULL,2564,3,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL23///Qw='),(58,4,'2011-02-23 22:56:49','d',1,'missing javadoc',NULL,2569,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitInfoBuilder.java','AAAL23///OM='),(203,44,'2011-02-23 14:54:27','P',1,'Done','AAAL23///Uc=',2573,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/synchronize/SynchronizeViewTest.java','AAAL23///Tg='),(239,44,'2011-02-23 14:54:27','P',1,'Done','AAAL23///UY=',2573,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/synchronize/SynchronizeViewTest.java','AAAL23///TY='),(203,49,'2011-02-23 14:10:37','P',1,'I would prefer you use here an UIText.GitModelWorkingTree_workingTree instead of hardcoding this value in test',NULL,2573,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/synchronize/SynchronizeViewTest.java','AAAL23///Uc='),(239,49,'2011-02-23 14:10:37','P',1,'Here we can use \"> \" + PROJ1 instead of hardcoding project name',NULL,2573,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/synchronize/SynchronizeViewTest.java','AAAL23///UY='),(225,6,'2011-02-23 15:35:07','P',1,'trailing whitespace',NULL,2574,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/team/actions/CompareActionsTest.java','AAAL23///R0='),(900,1,'2011-02-23 18:46:14','P',0,'This is probably wrong. On Cygwin with git-new-workdir info is a symlink. So this should be using repository.getFS().resolve(repository.getDirectory(), \"info/exclude\"). I must have missed this earlier. :-(',NULL,2575,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL23///QI='),(910,1,'2011-02-23 18:46:14','P',1,'We might also want to use repository.getFS().resolve() here.',NULL,2575,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL23///QM='),(907,1,'2011-02-23 18:46:14','P',1,'This should be using:\n\n  excludesFile = repository.getFS().resolve(\n    repository.getFS().userHome(),\n    p.substring(2));\n\nOn Cygwin the user might have pointed us to ~/.my-ignores which is a symlink to someplace else.',NULL,2575,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL23///QQ='),(902,1,'2011-02-23 18:46:14','P',1,'FWIW, getString() requires an O(N) search to locate the relevant key. We usually work around this by using the SectionParser stuff, like CoreConfig. Those objects are cached inside of a HashMap, which reduces their lookup cost to be closer to O(1).\n\nFortunately this code only ones once per WorkingTreeIterator, but EGit might be creating many WTIs over the period of several minutes each time it needs to update decorations.\n\nAlthough we probably still pay a higher cost to read the file than we do to look for the key in an O(N) search, so there might be a bigger savings from caching the file contents.\n\nIts probably not worth creating a new SectionParser for this, but it might be OK to put this into the existing CoreConfig one.',NULL,2575,1,'org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java','AAAL23///QU='),(1780,4,'2011-03-01 21:58:56','P',1,'typo: s/fetchExist/fetchExists/\n\ncompare to property definition below',NULL,2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///0c='),(1757,4,'2011-03-01 21:58:56','P',1,'typo: s/pushExist/pushExists/\n\ncompare to property definition below',NULL,2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///0g='),(1868,4,'2011-03-01 21:58:56','P',1,'typo: s/fetchExist/fetchExists/\n\ncompare to property definition below',NULL,2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///0M='),(1843,4,'2011-03-01 21:58:56','P',1,'typo: s/fetchExist/fetchExists/\n\ncompare to property definition below',NULL,2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///0Q='),(1824,4,'2011-03-01 21:58:56','P',1,'typo: s/fetchExist/fetchExists/\n\ncompare to property definition below',NULL,2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///0U='),(1802,4,'2011-03-01 21:58:56','P',1,'typo: s/pushExist/pushExists/\n\ncompare to property definition below',NULL,2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///0Y='),(1802,49,'2011-03-01 22:25:56','P',1,'Done','AAAL3H///0Y=',2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///z0='),(1757,49,'2011-03-01 22:25:56','P',1,'Done','AAAL3H///0g=',2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///z4='),(1868,49,'2011-03-01 22:25:56','P',1,'Done','AAAL3H///0M=',2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///zk='),(1780,49,'2011-03-01 22:25:56','P',1,'Done','AAAL3H///0c=',2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///zo='),(1843,49,'2011-03-01 22:25:56','P',1,'Done','AAAL3H///0Q=',2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///zs='),(1824,49,'2011-03-01 22:25:56','P',1,'Done','AAAL3H///0U=',2580,5,'org.eclipse.egit.ui/plugin.xml','AAAL3H///zw='),(10,4,'2011-02-24 00:09:05','P',1,'typo: s/as/is/',NULL,2582,1,'/COMMIT_MSG','AAAL23///Ns='),(69,1,'2011-02-23 21:51:31','P',1,'Why do we even need the transport object here? It doesn\'t appear to be needed or used.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///O0='),(81,1,'2011-02-23 21:51:31','P',1,'Document in exec and connect that exec is called, then connect. It doesn\'t make sense that this is the behavior, but it is.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///O4='),(114,1,'2011-02-23 21:51:31','P',1,'What are the values? Note that today we assume 0 means success and non-zero positive is failure, because that matches up with POSIX exit status values.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///O8='),(106,1,'2011-02-23 21:51:31','P',1,'Javadoc.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///PA='),(100,1,'2011-02-23 21:51:31','P',1,'Javadoc.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///PE='),(94,1,'2011-02-23 21:51:31','P',1,'Javadoc.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///PI='),(86,1,'2011-02-23 21:51:31','P',1,'Style-nit: Trailing white space.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///PM='),(66,1,'2011-02-23 21:51:31','P',1,'Please document this constructor properly since its public and API users are expected to subclass this type.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///PQ='),(63,1,'2011-02-23 21:51:31','P',1,'Style-nit: Fields do not start with \"f\". This probably should also be private.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///PU='),(60,1,'2011-02-23 21:51:31','P',1,'Style-nit: Unnecessary blank line in docs.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnection.java','AAAL23///PY='),(66,122,'2011-02-24 00:07:53','P',1,'We think that the information about the SSH session SshTransport.sock should be stored in the transport as it is currently and should not be moved. Because if it would be stored in the connection instead, it couldn\'t be shared between different connections. Since the (Jsch)connection needs to open a channel (using sock.openChannel) we need access to SshTransport.sock.\n\nSince the reason for this constructor argument is the access to SshTransport.sock, the argument could be of type SshTransport instead of TransportGitSsh. Would this be better? \n\n(Of course in the long run SshTransport.sock should not be Jsch specific but this wouldn\'t change that the connection needs access to the session)','AAAL23///Os=',2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnectionFactory.java','AAAL23///N0='),(66,1,'2011-02-24 00:24:16','P',1,'Isn\'t the JSch session protected access and thus not visible unless you subclass TransportSsh?\n\nI\'m not sure how passing the transport in the constructor is helping you here.\n\nMaybe we just need to wrap the session into a RemoteSession type, put that into TransportSsh, and have the RemoteSession be the RemoteCommandConnection factory?\n\nFor the TransportSftp case, we\'ll just have to require that the RemoteSession be an instanceof JSchRemoteSession so it can downcast and pull out the JSch session handle.','AAAL23///N0=',2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnectionFactory.java','AAAL23///Nc='),(66,122,'2011-02-24 05:34:45','P',1,'Yes it is protected we overlooked that. \n\nI like your idea to return RemoteSession, but one more problem is the call to initSession in JscConnection.exec. Thus I suggest:\n- to rename initSession into getSession\n- make it public\n- make it return RemoteSession \n- pass to getConnection the SshTransport\n\nThis way a remote connection can call getSession and getSession can (as initSession does now) correctly call the SessionFactory. \n\nInstead of passing SshTransport we could also just pass an Interface SessionStorage which has just the getSession method and is implemented by SshTransport.\n\nShould we upload a new patch with this suggested getSession method (and your other comments addressed)?','AAAL23///Nc=',2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnectionFactory.java','AAAL23///NU='),(66,1,'2011-02-23 21:51:31','P',1,'Why the TransportGitSsh? Why not the URIish instead and then this can decide how to setup the connection given the remote host/port its going to?',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnectionFactory.java','AAAL23///Os='),(65,1,'2011-02-23 21:51:31','P',1,'We would prefer newConnection() as the method name since a new object is being created.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnectionFactory.java','AAAL23///Ow='),(66,1,'2011-02-24 14:57:20','P',1,'Yes, please, then we have something to continue to review and discuss. Thanks.','AAAL23///NU=',2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteCommandConnectionFactory.java','AAAL3H////4='),(477,1,'2011-02-23 21:51:31','P',1,'Style-nit: This should be above the package and private code, but below the constructor.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL23///Pc='),(475,1,'2011-02-23 21:51:31','P',1,'Document this parameter. Can it be null? If so what happens?',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL23///Pg='),(474,1,'2011-02-23 21:51:31','P',1,'Style-nit: trailing whitespace.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL23///Pk='),(172,1,'2011-02-23 21:51:31','P',1,'Style-nit: The class is private, so the constructor can be package (default) access rather than public.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL23///Po='),(115,1,'2011-02-23 21:51:31','P',1,'I would prefer something a bit more verbose like:\n\n  /** @return a new connection to the remote system. */\n\nBut this is private, we don\'t usually javadoc private methods.',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL23///Ps='),(83,1,'2011-02-23 21:51:31','P',1,'Style-nit: Instance fields should go below static methods, but before the construtor. We don\'t explicitly initialize to null. We don\'t prefix instance fields with \"f\".',NULL,2583,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL23///Pw='),(78,121,'2011-03-04 14:53:49','d',1,'Done','AAAL3H///tQ=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///q0='),(218,121,'2011-03-04 14:55:08','d',1,'Done','AAAL3H///tg=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///qc='),(195,121,'2011-03-04 14:55:00','d',1,'Done','AAAL3H///tw=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///qg='),(191,121,'2011-03-04 14:54:56','d',1,'Done','AAAL3H///tY=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///qk='),(185,121,'2011-03-04 14:54:49','d',1,'Done','AAAL3H///tc=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///qo='),(266,121,'2011-03-04 14:55:18','d',1,'Done','AAAL3H///tk=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///qQ='),(156,121,'2011-03-04 14:54:43','d',1,'Done','AAAL3H///tU=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///qs='),(245,121,'2011-03-04 14:55:14','d',1,'Done','AAAL3H///to=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///qU='),(122,121,'2011-03-04 14:54:25','d',1,'Done','AAAL3H///t0=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///qw='),(243,121,'2011-03-04 14:55:11','d',1,'Done','AAAL3H///ts=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///qY='),(122,1,'2011-03-04 00:49:10','P',1,'Style-nit: Can you try pulling this back up onto the prior line so the block more closely matches the old version?',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///t0='),(185,1,'2011-03-04 00:49:10','P',1,'Style-nit: Please revert this reflow of the javadoc.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///tc='),(218,1,'2011-03-04 00:49:10','P',1,'Style-nit: Please revert this reflow of the javadoc.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///tg='),(266,1,'2011-03-04 00:49:10','P',1,'Style-nit: No reason to add final.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///tk='),(245,1,'2011-03-04 00:49:10','P',1,'Style-nit: No reason to add final.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///to='),(78,1,'2011-03-04 00:49:10','P',1,'Style-nit: Please revert this reflow of the javadoc.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///tQ='),(243,1,'2011-03-04 00:49:10','P',1,'Style-nit: No reason to add final.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///ts='),(156,1,'2011-03-04 00:49:10','P',1,'Style-nit: Please revert this reflow of the javadoc.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///tU='),(195,1,'2011-03-04 00:49:10','P',1,'Style-nit: There was no reason to add final here.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///tw='),(191,1,'2011-03-04 00:49:10','P',1,'Style-nit: Please revert this reflow of method declaration.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///tY='),(191,121,'2011-03-04 16:10:07','d',1,'Done','AAAL3H///t4=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///oI='),(105,121,'2011-03-04 16:14:27','d',1,'Done. I also included line 103, so that setupStreams() sets up all strings.','AAAL3H///uA=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///oM='),(85,121,'2011-03-04 15:01:27','d',1,'Done','AAAL3H///uI=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///p0='),(56,121,'2011-03-04 15:00:46','d',1,'Done','AAAL3H///uE=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///p4='),(47,121,'2011-03-04 15:00:20','d',1,'Done','AAAL3H///uo=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///p8='),(183,121,'2011-03-04 15:03:36','d',1,'Done','AAAL3H///t8=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///pw='),(31,121,'2011-03-04 15:00:01','d',1,'Done','AAAL3H///us=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///qA='),(24,121,'2011-03-04 14:58:27','d',1,'Done','AAAL3H///uM=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///qE='),(1,121,'2011-03-04 14:56:08','d',1,'Done','AAAL3H///uw=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///qM='),(191,1,'2011-03-04 00:49:10','P',1,'I guess there really isn\'t a better way to implement waitFor(). *sigh* At least this has a short timeout.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///t4='),(183,1,'2011-03-04 00:49:10','P',1,'Style-nit: No curly braces on single statements.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///t8='),(105,1,'2011-03-04 00:49:10','P',1,'Please reflow this comment text. Its badly mangled.\n\nMaybe consider pulling from 105 through 145 into a method called setupStreams(). This would remove at least one level of indentation (as the try is in the constructor now) and might make it easier to deal with the deeper nesting inside of the else block for the timeout setup.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///uA='),(56,1,'2011-03-04 00:49:10','P',1,'Style-nit: Trailing space.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///uE='),(85,1,'2011-03-04 00:49:10','P',1,'Style-nit: Trailing space.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///uI='),(24,1,'2011-03-04 00:49:10','P',1,'Since the constructor is public, and the class is well documented, should we just make the class public?',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///uM='),(47,4,'2011-03-04 00:04:21','P',1,'style nit: we don\'t use curly braces around single line blocks',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///uo='),(31,4,'2011-03-04 00:04:21','P',1,'style nit: trailing whitespace (more below)',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///us='),(1,4,'2011-03-04 00:04:21','P',1,'missing license header',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschSession.java','AAAL3H///uw='),(1,121,'2011-03-04 15:05:36','d',1,'Done','AAAL3H///uk=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteSession.java','AAAL3H///po='),(1,4,'2011-03-04 00:04:21','P',1,'missing license header',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteSession.java','AAAL3H///uk='),(107,121,'2011-03-04 16:39:38','d',1,'Done','AAAL3H///tM=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java','AAAL3H///n8='),(69,121,'2011-03-04 15:07:32','d',1,'Done','AAAL3H///ug=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java','AAAL3H///pc='),(78,121,'2011-03-04 15:08:25','d',1,'Done','AAAL3H///uc=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java','AAAL3H///pY='),(107,1,'2011-03-04 00:49:10','P',1,'Why seconds? More typical is for timeouts to be in milliseconds. Or to pass both a long and a TimeUnit.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java','AAAL3H///tM='),(78,4,'2011-03-04 00:04:21','P',1,'trailing whitespace',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java','AAAL3H///uc='),(69,4,'2011-03-04 00:04:21','P',1,'trailing whitespace',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshSessionFactory.java','AAAL3H///ug='),(122,121,'2011-03-04 16:41:08','d',1,'Yes, it should be milliseconds. I have corrected the Javadoc in SshSessionFactory.','AAAL3H///s8=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshTransport.java','AAAL3H///n4='),(114,121,'2011-03-04 15:12:44','d',1,'Done','AAAL3H///tA=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshTransport.java','AAAL3H///pI='),(94,121,'2011-03-04 15:11:39','d',1,'Done','AAAL3H///tI=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshTransport.java','AAAL3H///pM='),(103,121,'2011-03-04 15:11:36','d',1,'Done','AAAL3H///tE=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshTransport.java','AAAL3H///pQ='),(122,1,'2011-03-04 00:49:10','P',1,'Here the timeout is in milliseconds, but the API Javadoc suggested seconds. That\'s why I wanted to clarify it.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshTransport.java','AAAL3H///s8='),(114,1,'2011-03-04 00:49:10','P',1,'Style-nit: Trailing whitespace.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshTransport.java','AAAL3H///tA='),(103,1,'2011-03-04 00:49:10','P',1,'Style-nit: Revert this reflow.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshTransport.java','AAAL3H///tE='),(94,1,'2011-03-04 00:49:10','P',1,'Style-nit: Revert this reflow.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/SshTransport.java','AAAL3H///tI='),(166,121,'2011-03-04 15:16:46','d',1,'Done','AAAL3H///sw=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///o4='),(288,121,'2011-03-04 15:23:36','d',1,'Done','AAAL3H///sg=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///oc='),(304,121,'2011-03-04 15:23:31','d',1,'Done','AAAL3H///sc=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///og='),(247,121,'2011-03-04 15:23:47','d',1,'Done','AAAL3H///ss=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///oQ='),(278,121,'2011-03-04 15:23:40','d',1,'Done','AAAL3H///so=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///oU='),(281,121,'2011-03-04 15:23:38','d',1,'Done','AAAL3H///sk=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///oY='),(141,121,'2011-03-04 15:16:06','d',1,'Done','AAAL3H///s0=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///pA='),(129,121,'2011-03-04 15:14:38','d',1,'Done','AAAL3H///s4=',2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///pE='),(141,1,'2011-03-04 00:49:10','P',1,'Style-nit: Remove the added final keyword, and undo the reflow.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///s0='),(129,1,'2011-03-04 00:49:10','P',1,'Style-nit: Remove the added final keywords.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///s4='),(304,1,'2011-03-04 00:49:10','P',1,'Style-nit: Remove the added final keyword.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///sc='),(288,1,'2011-03-04 00:49:10','P',1,'Style-nit: Remove the added final keyword.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///sg='),(281,1,'2011-03-04 00:49:10','P',1,'Style-nit: Remove the added final keyword.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///sk='),(278,1,'2011-03-04 00:49:10','P',1,'Style-nit: Remove the added final keyword.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///so='),(247,1,'2011-03-04 00:49:10','P',1,'Style-nit: Remove the added final keyword.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///ss='),(166,1,'2011-03-04 00:49:10','P',1,'Style-nit; Remove the added final keywords.',NULL,2583,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportGitSsh.java','AAAL3H///sw='),(19,103,'2011-02-26 22:19:03','P',1,'That bug seems not related to this change. Could you provide the correct bug ID and update this commit message?',NULL,2585,1,'/COMMIT_MSG','AAAL3H///7c='),(19,123,'2011-02-26 22:47:55','P',1,'Correct Bug: 330327','AAAL3H///7c=',2585,1,'/COMMIT_MSG','AAAL3H///7E='),(13,103,'2011-02-26 22:19:03','P',1,'typo, should be \"finalize\"',NULL,2585,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/CommitObserver.java','AAAL3H///7U='),(11,103,'2011-02-26 22:19:03','P',1,'typo, should be \"true\"',NULL,2585,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/CommitObserver.java','AAAL3H///7Y='),(40,6,'2011-03-11 08:30:48','P',1,'I think this is not needed',NULL,2585,2,'org.eclipse.egit.ui/META-INF/MANIFEST.MF','AAAL3H///a4='),(6,6,'2011-03-11 08:30:48','P',1,'whitespace error',NULL,2585,2,'org.eclipse.egit.ui/plugin.xml','AAAL3H///a0='),(26,6,'2011-03-11 08:30:48','P',1,'whitespace error',NULL,2585,2,'org.eclipse.egit.ui/schema/commitObserver.exsd','AAAL3H///aw='),(26,6,'2011-03-11 08:30:48','P',1,'I think CommitOperation should not be part of an EGit API. It has for example a public execute method which then could be run by any other bundle. We would need another data container class with the information needed for commit which could be manipulated by the Observer.',NULL,2585,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/CommitObserver.java','AAAL3X////s='),(272,6,'2011-03-11 08:30:48','P',1,'This should be a method of its own.',NULL,2585,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitUI.java','AAAL3X////k='),(166,6,'2011-03-11 08:30:48','P',1,'This should be a method of its own (yes, other parts of commit() also should).',NULL,2585,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitUI.java','AAAL3X////o='),(226,1,'2011-02-25 15:06:59','P',1,'If the user passed --objects, super.createWalk() does not set argWalk. You should modify it to also set argWalk = the ObjectWalk it created and returned so we don\'t get an NPE here.\n\n(Yes, I know, --objects isn\'t compatible with this usage, but we shouldn\'t NPE over it.)',NULL,2597,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL3H///+A='),(184,1,'2011-02-25 15:06:59','P',1,'This now runs twice, once in run() and again in run.super() if there are also notes involved. I wonder if we shouldn\'t move this to be part of run() but before we invoke super.run()? It should be about the same time within the program, as super.run() calls createWalk() fairly early.',NULL,2597,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL3H///+E='),(328,9,'2011-03-01 08:31:16','P',1,'Done','AAAL3H///98=',2597,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL3H///3k='),(226,9,'2011-03-01 08:30:44','P',1,'Done','AAAL3H///+A=',2597,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL3H///5E='),(184,9,'2011-03-01 08:30:44','P',1,'I assume you meant only the \"if\" block?\nWhen the if(decorate) ... is moved to run() then createWalk does nothing more than calling the super.createWalk and can be removed from here. Don\'t know if I understood you correctly.','AAAL3H///+E=',2597,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL3H///5I='),(328,1,'2011-02-25 15:06:59','P',1,'You should still pass Integer.MAX_VALUE here to getBytes(). This is needed to allow opening a note that is large, like 12 MiB worth of text. These shouldn\'t happen, but if they do we should still make a good effort at displaying it.\n\nWhen the note is bigger than the default or the size passed here, we throw LargeObjectException. Maybe you want to trap it here and display a warning that the note is too big to display?\n\nAnd you might as well use getCachedBytes() too to avoid copying.',NULL,2597,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java','AAAL3H///98='),(724,100,'2011-02-28 10:05:30','P',1,'Done','AAAL3H///70=',2599,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java','AAAL3H///58='),(724,8,'2011-02-26 17:22:39','P',1,'Move the System.currentTimeMillis()  call outside the accept \"loop\". It is an \"expensive\" operation.',NULL,2599,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java','AAAL3H///70='),(219,1,'2011-02-28 03:00:37','P',1,'What if this path actually exists on the user\'s workstation?',NULL,2606,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TransportTest.java','AAAL3H///6I='),(106,1,'2011-02-28 03:00:37','P',1,'This message should be translated using MessageFormat and JGitText.',NULL,2606,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java','AAAL3H///6M='),(146,4,'2011-05-08 20:50:25','d',1,'replace auto-generated comment by something more meaningful',NULL,2609,1,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///Qw='),(1,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///Qs=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/AutoStart.java','AABOIn///Ok='),(8,4,'2011-05-08 21:26:57','P',1,'style nit: we don\'t use @author tags',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/AutoStart.java','AABOIn///Q4='),(1,4,'2011-05-08 21:26:57','P',1,'missing license header',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/AutoStart.java','AABOIn///Qs='),(31,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///Qk=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/EGitMylynUI.java','AABOIn///Oc='),(30,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///Qo=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/EGitMylynUI.java','AABOIn///Og='),(41,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///Qg=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/EGitMylynUI.java','AABOIn///OY='),(41,4,'2011-05-08 21:26:57','P',1,'style nit: trailing whitespace',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/EGitMylynUI.java','AABOIn///Qg='),(31,4,'2011-05-08 21:26:57','P',1,'style nit: trailing whitespace',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/EGitMylynUI.java','AABOIn///Qk='),(30,4,'2011-05-08 21:26:57','P',1,'style nit: trailing whitespace',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/EGitMylynUI.java','AABOIn///Qo='),(1,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///QY=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/QueryBranchMappingDialog.java','AABOIn///Oo='),(10,4,'2011-05-08 21:26:57','P',1,'stle nit: we don\'t use author tags\n\nmissing javadoc for public class',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/QueryBranchMappingDialog.java','AABOIn///Qc='),(1,4,'2011-05-08 21:26:57','P',1,'missing license header',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/QueryBranchMappingDialog.java','AABOIn///QY='),(2,103,'2011-05-08 21:57:51','P',1,'Basic implementation is from Chris. I extended it.','AABOIn///QU=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///O0='),(165,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///P0=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///Os='),(154,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///P4=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///Ow='),(165,4,'2011-05-08 21:26:57','P',1,'style nit: no braces around single line blocks',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///P0='),(154,4,'2011-05-08 21:26:57','P',1,'style nit: we don\'t use braces around single line blocks',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///P4='),(137,4,'2011-05-08 21:26:57','P',1,'texts must be externalized',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///P8='),(136,4,'2011-05-08 21:26:57','P',1,'texts must be externalized',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///QA='),(114,4,'2011-05-08 21:26:57','P',1,'why can we ignore this exception ?',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///QE='),(74,4,'2011-05-08 21:26:57','P',1,'texts shown to users must be externalized for translation',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///QI='),(61,4,'2011-05-08 21:26:57','P',1,'missing javadoc',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///QM='),(46,4,'2011-05-08 21:26:57','P',1,'style nit: no author tags\n\nmissing javadoc',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///QQ='),(2,4,'2011-05-08 21:26:57','P',1,'why do you use Chris\' copyright and not yours ?',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/RepositoryAndBranchSelectionDialog.java','AABOIn///QU='),(118,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///Pc=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///O4='),(92,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///Pg=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///O8='),(59,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///Pk=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///PA='),(118,4,'2011-05-08 21:26:57','P',1,'no braces around single line blocks',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///Pc='),(56,103,'2011-05-08 21:57:51','P',1,'Done','AABOIn///Po=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///PE='),(92,4,'2011-05-08 21:26:57','P',1,'no braces around single line blocks',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///Pg='),(2,103,'2011-05-08 21:57:51','P',1,'Yes. He provided the first draft of this class and i extended it.','AABOIn///Pw=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///PI='),(59,4,'2011-05-08 21:26:57','P',1,'instead of \"origin\" use DEFAULT_REMOTE_NAME from org.eclipse.jgit.lib.Constants',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///Pk='),(123,103,'2011-05-08 21:57:51','P',1,'I\'m still experimenting with the Mylyn API to find the correct thing. \"local-1\" was the name of the active context, while i debugged it.','AABOIn///PY=',2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///PM='),(56,4,'2011-05-08 21:26:57','P',1,'what if there are multiple repositories ? Why is the first one the right one ?',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///Po='),(47,4,'2011-05-08 21:26:57','P',1,'no author tags instead add javadoc for public class',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///Ps='),(156,4,'2011-05-08 21:26:57','P',1,'properly handle exceptions',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///PU='),(2,4,'2011-05-08 21:26:57','P',1,'did Chris participate here ?',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///Pw='),(123,4,'2011-05-08 21:26:57','P',1,'why \"local-1\" what are semantics of this name ?',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///PY='),(162,4,'2011-05-08 21:26:57','P',1,'replace auto-generated comment by something more meaningful',NULL,2609,2,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/tasks/TaskActivationListener.java','AABOIn///Q0='),(24,103,'2011-05-09 09:24:40','P',1,'Currently i register the TaskActivationListener in the start method of this bundle, so without autostart, the listener wouldn\'t be registered:\n\nmanager = TasksUi.getTaskActivityManager();\nlistener = new TaskActivationListener();\nmanager.addActivationListener(listener);\n\nI\'ll check if there\'s an extension point in Mylyn, which we can use.','AABOIn///Nc=',2609,3,'org.eclipse.egit.mylyn.ui/plugin.xml','AABOIn///M0='),(24,2,'2011-05-08 23:56:06','P',1,'why do we need this at all? Autostarting bundles is bad...',NULL,2609,3,'org.eclipse.egit.mylyn.ui/plugin.xml','AABOIn///Nc='),(18,2,'2011-05-08 23:56:06','P',1,'Why do we need this?',NULL,2609,3,'org.eclipse.egit.mylyn.ui/src/org/eclipse/egit/internal/mylyn/ui/AutoStart.java','AABOIn///NY='),(703,6,'2011-03-01 09:46:07','P',1,'This is different from the initialization of createChangeId, but I like it more because here it is clearer what the default is.\n\nWe should change the initialization of createChangeId later on in order to improve consistency.',NULL,2610,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AAAL3H///3c='),(808,4,'2011-02-28 15:04:45','P',1,'oops, yes you are right, my first guess was plain wrong','AAAL3H///5Y=',2613,1,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL3H///5Q='),(808,1,'2011-02-28 14:58:08','P',1,'This is always true.\n\nYou just allocated a new File. new never returns null.',NULL,2613,1,'org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java','AAAL3H///5Y='),(1229,6,'2011-03-01 16:13:10','P',1,'Done','AAAL3H///2o=',2616,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3H///10='),(1239,6,'2011-03-01 16:13:10','P',1,'Done','AAAL3H///2k=',2616,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3H///1s='),(1233,6,'2011-03-01 16:13:10','P',1,'Done','AAAL3H///2s=',2616,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3H///1w='),(1239,4,'2011-03-01 15:36:28','P',1,'style nit: “{“ should come after if statement on the same line\n\n if (!db.equals(currentRepo)) {\n ...\n }',NULL,2616,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3H///2k='),(1229,4,'2011-03-01 15:36:28','P',1,'\"pathChange\" doesn\'t sound boolean to me, I would prefer \"pathChanged\", same for the other boolean variables',NULL,2616,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3H///2o='),(1233,4,'2011-03-01 15:36:28','P',1,'typo: s/allBrancheChange/allBranchesChange/',NULL,2616,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3H///2s='),(7,6,'2011-03-02 14:32:33','P',1,'Done. I had also thought about this.','AAAL3H///zM=',2623,1,'/COMMIT_MSG','AAAL3H///y8='),(7,4,'2011-03-02 13:49:22','P',1,'I think this sentence is the opposite of what the change does to the displayed menu entry\n\nstyle nit: trailing whitespace',NULL,2623,1,'/COMMIT_MSG','AAAL3H///zM='),(321,1,'2011-03-02 18:00:35','P',1,'NO.\n\nWe ONLY want the pack closed when an exception goes up the call stack. If the read method was good and returns successfully, the pack should stay open.',NULL,2628,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/WindowCache.java','AAAL3H///xE='),(66,100,'2011-03-03 16:15:53','P',1,'Native Git allows to omit the option when paths are specified.',NULL,2635,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Commit.java','AAAL3H///vc='),(66,100,'2011-03-11 13:34:23','P',1,'Done','AAAL3H///vc=',2635,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Commit.java','AAAL3X///+g='),(284,100,'2011-03-08 22:40:25','P',1,'Yes, you are absolutely right. I will add this to the test, i.e. first do a commit -o and then perform a \'normal\' commit.','AAAL3H///lQ=',2635,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java','AAAL3H///gQ='),(270,100,'2011-03-08 22:40:25','P',1,'Okay, I\'ve removed the unnecessary code.','AAAL3H///lg=',2635,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java','AAAL3H///gU='),(250,100,'2011-03-08 22:40:25','P',1,'Done','AAAL3H///l0=',2635,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java','AAAL3H///gY='),(250,5,'2011-03-06 22:53:30','P',1,'you can replace all this lines by writeTrashFile(\"a\"). Also true for all the other writes to files. The tests are much easier to read this way.',NULL,2635,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java','AAAL3H///l0='),(270,5,'2011-03-06 22:53:30','P',1,'the git.commit()...call() already returns the RevCommit you are searching for. No need to call git.log() . Or do you explicitly wanted\nto test that the log command finds the last commit.\n\nThis comment is also true for the remaining new tests.',NULL,2635,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java','AAAL3H///lg='),(284,5,'2011-03-06 22:53:30','P',1,'Really?? Where is b.txt? A \"commit -o b.txt\" should not remove b.txt from the index, or? The index should always contain all files which should be in the next commit - not only those files which should be modified by the next commit. If we would commit in this state then the next commit would only contain a .txt, and  b.txt would not be under version control anymore. A git log would tell that the last commit has deleted b.txt\n\nI would expect an index containing a.txt and b.txt. I wouldn\'t even expect that a commit -o changes the index substantially.\n\nTry it out with native git:\ngit init\necho a>a\necho b>b\ngit add .\ngit ls-files --stage\ngit commit -o b -m only_b\ngit ls-files --stage\ngit commit -m both\ngit ls-files --stage\ngit log -p',NULL,2635,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java','AAAL3H///lQ='),(186,100,'2011-03-08 22:40:25','P',1,'Done','AAAL3H///lM=',2635,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java','AAAL3H///fU='),(429,100,'2011-03-08 22:40:25','P',1,'Done','AAAL3H///lI=',2635,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java','AAAL3H///gM='),(429,5,'2011-03-06 22:53:30','P',1,'We should at least mention whether we support any wildcards/special syntax here.',NULL,2635,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java','AAAL3H///lI='),(186,5,'2011-03-06 22:53:30','P',1,'thats the problem: we shouldn\'t delete from the original index. We should instead process every single path with is in the original dircache. For each path covered by -o we should copy what\'s in the original index. For every other path we should copy whats in HEAD. \n\nIn other words. For our copy of our index we have to work on all files which are not covered by -o option. We should reset them to HEAD state. All the pathes covered by -o are just copied over.',NULL,2635,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java','AAAL3H///lM='),(328,5,'2011-03-09 17:12:26','P',1,'I think it is crucial that we check for each commit also the content he brings for each file. If we only check which files are included in a commit then we miss to test important -o functionality',NULL,2635,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java','AAAL3H///eM='),(328,100,'2011-03-11 13:34:16','P',1,'Done','AAAL3H///eM=',2635,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java','AAAL3X///+o='),(195,5,'2011-03-09 17:12:26','P',1,'We discussed this in person: we should concentrate on the worktree content for those pathes included in \'-o\'. That\'s how native git works. We should even make sure that after the commit -o operation we do\nhave updated index entries for those entries included in \"-o\". It is like we would do a \"git add\" for all pathes included by -o.',NULL,2635,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java','AAAL3H///eQ='),(195,100,'2011-03-11 13:34:16','P',1,'Done','AAAL3H///eQ=',2635,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java','AAAL3X///+k='),(134,79,'2011-03-04 14:46:58','P',1,'Done','AAAL3H///rQ=',2639,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java','AAAL3H///q8='),(124,79,'2011-03-04 14:46:58','P',1,'Done','AAAL3H///rU=',2639,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java','AAAL3H///rA='),(66,79,'2011-03-04 14:46:58','P',1,'Done','AAAL3H///rY=',2639,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java','AAAL3H///rE='),(134,1,'2011-03-04 14:26:46','P',1,'Should we also assert the push result was the status we expect (which is the branch created).',NULL,2639,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java','AAAL3H///rQ='),(124,1,'2011-03-04 14:26:46','P',1,'The branch section isn\'t necessary to have the tracking ref update. Lets not set it during the test.',NULL,2639,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java','AAAL3H///rU='),(66,1,'2011-03-04 14:26:46','P',1,'I\'d prefer not to use the SampleDataRepositoryTestCase here. If you need a commit to test with, please create it as part of the test method.',NULL,2639,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java','AAAL3H///rY='),(180,4,'2011-03-04 22:32:37','P',1,'style nit: trailing whitespace',NULL,2643,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///ng='),(146,4,'2011-03-04 22:32:37','P',1,'style nit: trailing whitespace',NULL,2643,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java','AAAL3H///nk='),(685,5,'2011-03-06 23:04:16','P',1,'We could add a test for the other case. A merge with staged content for a file which is not touched by the merge should suceed.\n\nWhats about a test for dirty working trees?',NULL,2645,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java','AAAL3H///mk='),(669,5,'2011-03-06 23:04:16','P',1,'I would be careful with including the smudge state. It could be \nplatform dependent whether we are hitting smudged situations or not. If you don\'t want to test it then leave it out.',NULL,2645,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java','AAAL3H///mo='),(685,100,'2011-03-16 11:55:42','P',1,'Added test for dirty worktree.','AAAL3H///mk=',2645,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java','AAAL3n///0c='),(669,100,'2011-03-16 11:55:42','P',1,'Removed SMUDGE.','AAAL3H///mo=',2645,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java','AAAL3n///0g='),(108,5,'2011-03-06 23:04:16','P',0,'nice refactoring. This should really belong in our test infrastructure and not in one specific test',NULL,2645,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java','AAAL3H///ms='),(108,100,'2011-03-16 11:55:42','P',0,'Refactoring has been moved to separate change.','AAAL3H///ms=',2645,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java','AAAL3n///0Y='),(617,5,'2011-03-06 23:04:16','P',1,'Maybe one sentence or comment in brackets about what could cause such situations would be good',NULL,2645,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL3H///mw='),(617,100,'2011-03-16 11:55:42','P',1,'Done','AAAL3H///mw=',2645,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL3n///0Q='),(13,5,'2011-03-06 23:08:35','P',1,'Why do we introduce that on the CherryPickCommand. It\'s an \nAbnormalMergeFailure ... so why don\'t we let MergeCommand throw\nit. A cherry-pick will in the end also call mergeCommand and will\ntherefore also benefit from this new exceptions',NULL,2646,1,'/COMMIT_MSG','AAAL3H///k8='),(13,100,'2011-03-16 14:21:59','P',1,'You are right. But to be even more consistent with the other commands, I have now introduced a CherryPickResult class.','AAAL3H///k8=',2646,1,'/COMMIT_MSG','AAAL3n///z0='),(87,46,'2011-03-21 14:18:58','P',1,'See above.',NULL,2646,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickResult.java','AAAL3n///Z0='),(85,46,'2011-03-21 14:18:58','P',1,'See above.',NULL,2646,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickResult.java','AAAL3n///Z4='),(83,46,'2011-03-21 14:18:58','P',1,'I personally would like to see this final, as it is set in the constructor.',NULL,2646,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickResult.java','AAAL3n///Z8='),(89,46,'2011-03-21 14:18:58','P',1,'See above.',NULL,2646,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickResult.java','AAAL3n///Zw='),(7,5,'2011-03-24 12:21:35','P',1,'All your coding changes only speak about \'failures\'. I would consequently only call this \"Show failures during....\"',NULL,2648,2,'/COMMIT_MSG','AAAL3n//+mM='),(1028,4,'2011-03-17 14:31:54','P',1,'Done','AAAL3n///vM=',2650,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3n///sM='),(1016,4,'2011-03-17 14:31:54','P',1,'Done','AAAL3n///vQ=',2650,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3n///sQ='),(1003,4,'2011-03-17 14:31:54','P',1,'Done','AAAL3n///vY=',2650,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3n///sU='),(1028,46,'2011-03-17 09:03:53','P',1,'Same as above',NULL,2650,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3n///vM='),(1016,46,'2011-03-17 09:03:53','P',1,'Same as above',NULL,2650,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3n///vQ='),(1003,46,'2011-03-17 09:03:53','P',1,'Why is the filter setting checked here? Doesn\'t the commit graph table simply ignore the calls if the selected commit is not in the list?\nIf we really need to check whether the list is filtered, then a check for SHOWALLREPO as filter is not sufficient: if the input is a Repository (because you selected a repo in the repo view), then the filter buttons are simply deactivated, but the previous setting will still be active; however, the user can not change the setting, so we would have to check for filter != SHOWALLREPO && ((input.getItems() != null) || (input.getFiles() == null))) (or something like this).',NULL,2650,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java','AAAL3n///vY='),(222,1,'2011-03-07 18:30:48','P',1,'This catch should be more targeted. We expect a TransportException here, don\'t we? So catch that, and let everything else be thrown to the caller. If any other type is thrown the test will fail.',NULL,2651,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TransportTest.java','AAAL3H///ik='),(218,5,'2011-03-07 09:19:50','P',1,'doesn\'t compile with eclipse and our standard warning/error settings. This method is not throwing any IOException (we are catching it).',NULL,2651,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TransportTest.java','AAAL3H///kg='),(332,5,'2011-03-07 09:19:50','P',1,'that doesn\'t compile with our checked in eclipse settings because you\nhaven\'t documented this exception in the javadoc. Just look at your change in eclipse and use our checked-in warning/error levels.\n\nAnother thing: I was wondering why you don\'t break our builds by introducing a new unchecked exception. I found out: it\'s because this method is not used in egit/jgit.',NULL,2651,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/Transport.java','AAAL3H///ks='),(106,1,'2011-03-07 18:30:48','P',1,'Throwing NotSupportedException is probably the only thing we can do right now.\n\nFor quite a while now I have wanted to rebuild the way this API works. I want to introduce a TransportType interface that implements canHandle(URIish,FS), and has open(Repository,URIish) to construct the Transport instance. Then we can get rid of the static list of canHandle invocations inside of Transport and instead walk through a list of registered TransportTypes.\n\nEGit\'s dialog can use that list of TransportType to enumerate what connections are available, rather than hard-coding them all.\n\n\"Plugins\" to JGit could register their own TransportType instances, allowing us to support other means of transport (e.g. rsync://) that we don\'t support today because it requires use of software the Eclipse Foundation won\'t let us redistribute as part of the core JGit library. But if users supply their own plugins from external sources, there is no reason they shouldn\'t be able to register and \"Just Work\".\n\nBecause I can\'t think of what else is really critical for me to do today, I might try to sketch this out and post a change for discussion.','AAAL3H///kk=',2651,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java','AAAL3H///ig='),(106,5,'2011-03-07 09:19:50','P',1,'Not so sure whether NotSupportedException is correct here. On the other hand: that\'s our only chance to report this error without breaking API.',NULL,2651,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java','AAAL3H///kk='),(103,5,'2011-03-07 09:19:50','P',1,'Style-nit: we don\'t use curly braces for one-line blocks. Maybe something like this...\n\nif (\"file\".equals(uri.getScheme()) || uri.getScheme() == null) {\n  if (!fs.resolve(new File(PWD), uri.getPath()).isDirectory())\n    throw new NotSupportedException(uri.getPath() + \" does not exist\");\n  return true;\n}',NULL,2651,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportLocal.java','AAAL3H///kw='),(221,1,'2011-03-07 18:20:28','P',1,'Don\'t use java.io.tmpdir in unit tests. We should be focusing on the trash directory, as its not in tmpdir and gets cleaned up by the unit test framework we inherit from in our base class.\n\nThis should be a unique name that doesn\'t exist:\n\n  File notHere = new File(trash, \"not-a-git.git\");\n\ntrash is a java.io.File inherited down which tells us the temporary directory everything is within. Within that, we create a repository called \"test????_???\". Otherwise the trash directory is empty. So we should never see \"not-a-git.git\" be present within it.','AAAL3H///k0=',2652,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TransportTest.java','AAAL3H///iw='),(221,5,'2011-03-07 09:32:33','P',1,'Do you fear that /path/to/non-existing/repository.git by chance does really exist? If we want to create a pathName which does not exist there should be easier ways then to create a repo and then delete it again. Maybe something like\n\nString path = new File(\n  System.getProperty(\"java.io.tmpdir\"),\n  \"TransportTest\" +\n    Long.toString(System.currentTimeMillis())\n  ).getAbsolutePath();',NULL,2652,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/TransportTest.java','AAAL3H///k0='),(241,1,'2011-03-10 17:37:40','P',1,'Correct. I\'m avoiding a check here for the size being a power of 2 because the class is only 250 lines of code, including copyright notices and documentation. If you are changing the size such that initTable gets called with a non-power of 2, and you can\'t read this much code, well... :-\\\n\nAs it is this class has some strange restrictions, like callers of the class *MUST* ensure they use add() *ONLY* if contains() would return false for the object. Otherwise its unpredictable what happens when there are duplicate mappings for an ObjectId.','AAAL3H///cU=',2681,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdSubclassMap.java','AAAL3H///ao='),(217,1,'2011-03-10 17:37:40','P',1,'The old code uses >>> 1 because -1 % 32 is negative. So if the high bit was set we would get a negative array index, and that doesn\'t work in Java. :-)\n\nDoing >>> 1 to \"clear\" the high bit and force the value positive is faster than any other means of making the value positive, especially when you know w1 is coming from SHA-1 and all of the bits are about equally as good for our hash code.\n\nThe old code used % rather than & because I think the table used to use a prime number for its length, rather than a power of 2. But we have since changed to using a power of 2, so & is faster.\n\nAnd yes, all of the bits are about equally as good coming from w1, and the newer code is 1 fewer instructions and the remaining instruction is faster to execute for most processors.','AAAL3H///cY=',2681,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdSubclassMap.java','AAAL3H///as='),(241,5,'2011-03-10 09:48:39','P',1,'If I would forget about performance I would add a check here to make sure that sz is some power of 2. It would be disastrous for the performance if this is not true. A size of 1025 would lead to a mask with one bit set and therefore only one bucket.\nAm I guessing right that you left out these checks for performance reasons because you know you\'ll call this method always with powers of 2?',NULL,2681,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdSubclassMap.java','AAAL3H///cU='),(217,5,'2011-03-10 09:48:39','P',1,'this change also means that we use a different subset of the bits in the id as input for our hashing. The least significant was ignored before - now some high bits are ignored. I don\'t see a problem with that now because I guess the bits in our SHA1\'s are equally good as input for hashes.',NULL,2681,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdSubclassMap.java','AAAL3H///cY='),(242,5,'2011-03-10 10:05:30','P',1,'forget this comment. I missed the discussion about load factors and optimizations on http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg00980.html','AAAL3H///cc=',2682,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdSubclassMap.java','AAAL3H///b4='),(242,5,'2011-03-10 09:49:19','P',1,'means: the array grows when it is filled to 50%, correct? Have you tried out to grow later and with more increase?',NULL,2682,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdSubclassMap.java','AAAL3H///cc='),(15,4,'2011-03-15 21:56:39','P',1,'typo: s/diveraged/diverged/',NULL,2716,1,'/COMMIT_MSG','AAAL3n///28='),(86,1,'2011-03-15 15:33:49','P',1,'I\'m not convinced the canonical path is really the correct path to construct with. Its going to resolve symlinks, which on some systems may wind up with a nasty \"internal\" path pointing to the NFS server that contains your home directory, rather than say your home directory.',NULL,2720,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/InitCommand.java','AAAL3n///48='),(9,1,'2011-03-15 17:18:00','P',1,'You mean the FETCH_HEAD file?',NULL,2721,1,'/COMMIT_MSG','AAAL3n///3o='),(844,1,'2011-03-16 00:08:47','P',1,'No, that\'s not true. Its common practice to try and use the first ref in FETCH_HEAD as though it were a normal ref. So we should support reading it here, we just need to only read the first 40 bytes of it. :-)\n\nThe main reason we have the too large error is to fail out fast if we read a symbolic reference that has an insane name within it. If the name exceeds the reasonable length we support here, the ref name might be truncated and fail to be read correctly. But we have a limit here to prevent reading some massive binary file that was accidentally placed into the refs/ directory, sucking all of that into the JVM as a byte[] would be painful.\n\nMy proposed IO.readSome(path, limit) would need an additional check here, if isSymRef(buf, n) is true and n.length == limit then we need to abort and refuse to process this ref, as its a potentially truncated symbolic reference.','AAAL3n///2E=',2721,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java','AAAL3n///18='),(844,8,'2011-03-15 23:50:17','P',1,'FETCH_HEAD contains more than one ref, so we should treat it separatelt and not let it go through this path.','AAAL3n///3s=',2721,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java','AAAL3n///2E='),(844,1,'2011-03-15 17:18:00','P',1,'Instead of dropping the 4k limit, I would rather introduce a new IO.readSome(path, limit) method that allows us to read the first 4k and return when either the whole file or the limit is reached.',NULL,2721,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java','AAAL3n///3s='),(108,1,'2011-03-15 17:21:37','P',1,'This discards the \"msg\" argument we got from JSch. Maybe this class needs a new constructor that allows us to pass in the msg rather than using the default text.',NULL,2722,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/CredentialsProviderUserInfo.java','AAAL3n///3g='),(108,130,'2011-03-15 19:58:15','d',1,'Currently it is only used non-interactively, i.e. without any prompting.','AAAL3n///3g=',2722,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/CredentialsProviderUserInfo.java','AAAL3n///3M='),(113,1,'2011-05-23 15:23:22','P',1,'We shouldn\'t have this case here. The old code was just plain wrong to be using a StringType for the password.\n\nLeave the original else block when that first get returns false.',NULL,2722,3,'org.eclipse.jgit/src/org/eclipse/jgit/transport/CredentialsProviderUserInfo.java','AABOJH///0U='),(11,100,'2011-03-30 15:00:39','P',1,'spelling: actually',NULL,2727,2,'/COMMIT_MSG','AAAL33///qk='),(9,100,'2011-03-30 15:00:39','P',1,'spelling: rename',NULL,2727,2,'/COMMIT_MSG','AAAL33///qo='),(161,4,'2011-03-30 23:18:29','P',1,'yeah, this makes sense','AAAL3n///YA=',2727,2,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL33///h0='),(1,4,'2011-03-20 01:46:08','P',1,'missing license header',NULL,2727,2,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL3n///c4='),(161,4,'2011-03-20 01:46:08','P',1,'is that correct behavior ?',NULL,2727,2,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL3n///cs='),(161,8,'2011-03-21 22:10:34','P',1,'This just documents the behavior. I actually think its wrong, hence my comment. Otoh that is probably best taken care of as a follow-up patch.','AAAL3n///cs=',2727,2,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL3n///YA='),(192,100,'2011-03-30 15:00:39','P',1,'source already is a project, thus calling getProject() is not necessary',NULL,2727,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AAAL33///qM='),(202,100,'2011-03-30 15:00:39','P',1,'formatting: move bracket to new line',NULL,2727,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AAAL33///qQ='),(266,4,'2011-03-20 01:46:08','P',1,'pure formatting change',NULL,2727,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AAAL3n///cg='),(196,4,'2011-03-20 01:46:08','P',1,'style nit: this line looks a bit wide ...',NULL,2727,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AAAL3n///ck='),(170,4,'2011-03-20 01:46:08','P',1,'do we need these pure formatting changes ?',NULL,2727,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AAAL3n///co='),(169,4,'2011-04-05 22:55:06','P',1,'I think we should add a TODO here',NULL,2727,4,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL33///LE='),(278,4,'2011-04-05 22:55:06','P',1,'typo: s|YEY</em<|YET </em>|',NULL,2727,4,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL33///LI='),(69,4,'2011-04-05 22:55:06','P',1,'what\'s the reason for this commented out code ?',NULL,2727,4,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL33///LM='),(69,8,'2011-04-20 17:12:57','P',1,'Just checking the quality of the code review :)\nDone.','AAAL33///LM=',2727,4,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL4H//+9M='),(278,8,'2011-04-20 17:12:57','P',1,'Done','AAAL33///LI=',2727,4,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL4H//+9Q='),(169,8,'2011-04-20 17:12:57','P',1,'Done','AAAL33///LE=',2727,4,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AAAL4H//+9U='),(239,4,'2011-04-05 22:55:06','P',1,'can we remove this commented-out code ?',NULL,2727,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AAAL33///LA='),(239,8,'2011-04-20 17:12:57','P',1,'Sure. Done','AAAL33///LA=',2727,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AAAL4H//+9Y='),(326,6,'2011-08-17 14:40:29','P',1,'We should remove this test because the fix of Bug 307140 will still not allow for moving a project to a subfolder.',NULL,2727,9,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOAn///BI='),(208,6,'2011-08-17 14:40:29','P',1,'We should remove this check because moving to a subfolder does still not work in eclipse 3.7.0. \n\nThe fix to Bug 307140 does not allow for moving to a subfolder but it only prevents to enter such a location into the \"MoveProject\" dialog, in order to avoid the deletion of the project.',NULL,2727,9,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOAn///BY='),(342,8,'2011-08-29 20:52:28','P',1,'It has happened more than once that I\'ve mistakenly created the repo in the project, so I want an extra directory level. It\'s non-trivial, but that\'s what tools are for.\n\nThe tests fails because I assumed it was fixed with 3.7.0.\nI might add an @ignore instead the version logic.','AABOAn//+oo=',2727,10,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOAn//+dU='),(279,6,'2011-08-22 15:31:01','P',1,'No. That\'s not a simple rename. If you rename a project in the default location (the eclipse workspace), the folder where the project is located is also renamed. This case is still not handled by the GitMoveDeleteHook. \n\nIt should work if you rename a project that is not located in the default location.',NULL,2727,10,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOAn//+ok='),(342,6,'2011-08-22 15:31:01','P',1,'This test fails on my machine (Version: 3.7.0 Build id: I20110613-1736). Why should it ever work? Bug 307410 does only prevent the user from entering a subfolder of the current folder into the \"move\" dialog.\n\nWhat do you think about just removing this test?',NULL,2727,10,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOAn//+oo='),(279,8,'2011-08-29 20:52:28','P',1,'(Simple as in SOAP).\nOk, not simple. Done','AABOAn//+ok=',2727,10,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOAn//+SU='),(228,6,'2011-08-22 15:31:01','P',1,'This leads to a java.lang.StringIndexOutOfBoundsException if I rename a project which has a repository in the project folder and which is located outside the eclipse workspace. In this case the location does not change. \n\nThis error had been there before. I think it is the same as was reported in comment 2 of bug 334112. Mabe we could fix it in another change, but you could mention it in the commit message as a further limitation.',NULL,2727,10,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOAn//+oY='),(228,8,'2011-08-29 20:52:28','P',1,'Adding as a code comment. Done','AABOAn//+oY=',2727,10,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOAn//+SQ='),(310,6,'2011-08-30 15:46:23','P',1,'Shouldn\'t it be P2 now? The test succeeds, but only because the GitMoveDeleteHook does nothing, and eclipse moves the RepositoryProvider property, and the GitProvider still contains the old RepositoryMapping.\n\nThe GitMoveDeleteHook does nothing wrt RepositoryMapping, the condition \n\nnewLocationFile.getAbsolutePath().contains(\n		srcm.getRepository().getWorkTree().getAbsolutePath()) \n\nin line 217 is not fulfilled.\n\nIf the project were outside the eclipse workspace, the GitMoveDeleteHook would try to do something, but it would fail with java.lang.StringIndexOutOfBoundsException in line 231.',NULL,2727,11,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOAn//+Pc='),(291,6,'2011-08-30 15:46:23','P',1,'typo? s/we/will',NULL,2727,11,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOBH////8='),(310,8,'2011-08-30 21:40:28','P',1,'Good catch.','AABOAn//+Pc=',2727,11,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOBH///+w='),(97,6,'2011-08-30 15:46:23','P',1,'If path is simple, i.e. just the project name, then ppath.lastSegment().equals(path) is true and as a consequence locatioURI is set to null (the default location). The parameter insidews is not taken into account in this case. Please fix that.\n\nI think (!ppath.lastSegment().equals(path) || !insidews) would work.',NULL,2727,11,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/TestProject.java','AABOAn//+PY='),(205,6,'2011-08-30 15:46:23','P',1,'Please check additionally if the sourceLocation is equal to the newLocation. This is the case for a simple rename. We should allow that.',NULL,2727,11,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOAn//+PM='),(205,8,'2011-08-30 21:40:28','P',1,'No. The resources framework does not allow this, so we do not need to allow.','AABOAn//+PM=',2727,11,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOBH///+0='),(205,6,'2011-08-31 07:21:26','P',1,'I thought of something like \n\nif (sourceLocation.isPrefixOf(newLocation) && !sourceLocation.equals(newLocation)) \n\nto catch the case where a project is renamed but not moved to another location. I think this works in eclipse and we should react on that by renewing the repository mapping. We could even skip the step of moveIndexContent in this case because the relative paths do not change.\n\nHowever, I propose to handle the case of renaming a project in another change. If you agree, you could just remove or change the test testMoveProjectContainingGitRepo and then we can submit this change. Afterwards I can make a proposal about what I have in mind about the rename case.','AABOBH///+0=',2727,11,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOBH///+g='),(205,8,'2011-09-08 00:59:35','P',1,'right...','AABOBH///+g=',2727,11,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOBH///cA='),(21,8,'2011-11-13 19:36:31','P',1,'I was thinking of rebuilds and windows. Moving a lot of files in Windows is scary, but then this doesn\'t change that and hopefully the resource rules protects what can be protected.','AABOCH///oc=',2727,19,'/COMMIT_MSG','AABOCH///es='),(21,6,'2011-11-07 13:16:28','P',1,'Why do you think that it is not reliable?',NULL,2727,19,'/COMMIT_MSG','AABOCH///oc='),(357,6,'2011-11-07 13:16:28','P',1,'In fact the project is not moved. Don\'t you think that the test method name is misleading?',NULL,2727,19,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOB3///wA='),(357,8,'2011-11-13 19:36:31','P',1,'Done','AABOB3///wA=',2727,19,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/GitMoveDeleteHookTest.java','AABOCH///FQ='),(242,6,'2011-11-07 13:16:28','P',1,'The two variables above are only needed in line 257. Please move them just before that line.',NULL,2727,19,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOB3///wM='),(307,6,'2011-11-14 08:45:02','d',1,'Lets hope that someone jumps in ;-)','AABOCH///FY=',2727,19,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOCH///Eo='),(314,8,'2011-11-13 19:36:31','P',1,'Done','AABOCH///ok=',2727,19,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOCH///Fc='),(242,8,'2011-11-13 19:36:31','P',1,'Done','AABOB3///wM=',2727,19,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOCH///Fg='),(244,8,'2011-11-13 19:36:31','P',1,'Done','AABOCH///oY=',2727,19,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOCH///FM='),(307,8,'2011-11-13 19:36:31','P',1,'Done. Right, moving in and out of repositories should be handled too. Any takers?','AABOCH///og=',2727,19,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOCH///FY='),(307,6,'2011-11-07 13:16:28','P',1,'You test for this scenario: \n\nnewLocation: C:/Eclipse/workspaces/junit-workspace/P2\ngitDir: C:/Eclipse/workspaces/junit-workspace/Project-1/.git\n\nThe condition would also apply if we moved a project from within a repository to a location below the folder containing the repo: \n\nnewLocation: C:/myfolder/P2\ngitDir: C:/myfolder/myrepo/.git\nsourceLocation: C:/myfolder/myrepo/Project-1\n\nBut moving projects outside of the repo never had worked before, therefore we may ignore this one here.',NULL,2727,19,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOCH///og='),(314,6,'2011-11-07 13:16:28','P',1,'Why do we need this here?\n\nProject.move already acquires scheduling rules for the move operation.',NULL,2727,19,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOCH///ok='),(244,6,'2011-11-07 13:16:28','P',1,'The method moveProject gets really long. Could you extract this and other blocks as methods?',NULL,2727,19,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitMoveDeleteHook.java','AABOCH///oY='),(149,1,'2011-03-15 23:43:01','P',1,'Why not assertNull(authorName)?\n\nBut you cannot make this change, it breaks everyone else. Code assumes they can do localConfig.get(UserConfig.KEY).getAuthorName() to fill out a PersonIdent. Returning null here because it wasn\'t set explicitly is going to break that assumption.\n\nInstead we should continue to guess implicitly, but mark a boolean on UserConfig that says we guessed the author name, so we have:\n\n boolean isAuthorNameImplicit()\n boolean isAuthorEmailImplicit()\n\netc. to let the application know the current value came from the OS and our assumption rules, rather than being set explicitly.',NULL,2728,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java','AAAL3n///2M='),(149,4,'2011-03-16 15:27:32','P',1,'Done','AAAL3n///2M=',2728,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java','AAAL3n///zA='),(124,46,'2011-03-21 08:58:37','P',1,'Should we change the show method to accept Repository... instead of Repository?',NULL,2729,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitUI.java','AAAL3n///a0='),(124,4,'2011-04-21 22:34:24','P',1,'Done','AAAL3n///a0=',2729,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitUI.java','AAAL4X///9Q='),(1,100,'2011-03-16 11:19:52','P',1,'License header is missing.',NULL,2732,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TestCommitOnly.java','AAAL3n///04='),(21,100,'2011-03-16 11:19:52','P',1,'Uh, ugly whitespaces ;-)',NULL,2732,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TestCommitOnly.java','AAAL3n///08='),(21,5,'2011-03-16 20:58:00','P',1,'Done','AAAL3n///08=',2732,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TestCommitOnly.java','AAAL3n///yA='),(1,5,'2011-03-16 20:58:00','P',1,'Done','AAAL3n///04=',2732,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/TestCommitOnly.java','AAAL3n///yE='),(7,100,'2011-03-17 09:59:59','P',1,'Yes, that\'s correct. I have changed the message now so that it only refers to the fixed scenario.','AAAL3n///xU=',2733,1,'/COMMIT_MSG','AAAL3n///uY='),(7,5,'2011-03-16 23:06:16','P',1,'This commit message led me in the wrong direction because the merge was failing when merge wanted to modify a dirty file. What you wanted to do is to a the same test for the checkout-from-theirs case.',NULL,2733,1,'/COMMIT_MSG','AAAL3n///xU='),(739,100,'2011-03-17 09:59:59','P',1,'Okay, I understand your concern. From my point of view writing tests becomes easier if you have more powerful utility methods. When you only have to change a parameter to create a new test, it becomes possible to increase the total number of tests significantly. Also refactoring tests is easier, I think. But reviewing these tests then becomes harder, that is true. So I have inlined most of these helper methods again and tried to come up with a compromise.','AAAL3n///xc=',2733,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java','AAAL3n///uQ='),(739,5,'2011-03-16 23:06:16','P',1,'Maybe that\'s only my personal taste but I think that these kind of methods make the test code harder to read then before. The method name is already very long and it still doesn\'t explain everything you do (\"modifiying file a\" - took me some time to understand the test case because I overlooked this method touches a). I prefer to have longer test-methods using utility methods with smaller scope then this long utility methods. How about modify(path) (creating-or-modifiying a file), checkout(branch) (creating (if not already there) and switching to a branch), and commit() (adding everything before).',NULL,2733,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/MergeCommandTest.java','AAAL3n///xc='),(400,100,'2011-03-17 09:59:59','P',1,'Yes, this is the fix. Sorry for all the confusing stuff... I put the refactorings into a separate commit now.','AAAL3n///xY=',2733,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL3n///uM='),(400,5,'2011-03-16 23:06:16','P',1,'Do I guess right that this if-statement is the where the real fix is? All the other modifications in this file are cleanups/refactorings/style nits, right? At least all youre new tests succeed if I only add add a test for a dirty-worktree file in case of a checkout from theirs.',NULL,2733,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL3n///xY='),(7,1,'2011-04-01 19:28:29','P',1,'This is a bit too vague, lots of JGit reads files. I would rephrase the subject as:\n\n  Support reading first SHA-1 from large FETCH_HEAD files',NULL,2739,1,'/COMMIT_MSG','AAAL33///To='),(15,1,'2011-04-01 19:28:29','P',1,'What is this line? Is it missing a Signed-off-by that you meant to put here, or something else?',NULL,2739,1,'/COMMIT_MSG','AAAL33///Ts='),(14,1,'2011-04-01 19:28:29','P',1,'Please fix this line, it shouldn\'t say Change-Id twice.',NULL,2739,1,'/COMMIT_MSG','AAAL33///Tw='),(89,1,'2011-04-01 19:28:29','P',1,'This isn\'t always the complete contents. If the contents exceeds the limit, then only the limit is returned.',NULL,2739,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/IO.java','AAAL33///T0='),(95,1,'2011-04-01 19:28:29','P',1,'I think its unnecessary to allocate a ByteArrayOutputStream here. Instead you can write the method as:\n\n  FileInputStream in = new FileInputStream(path);\n  try {\n    byte[] buf = new byte[limit];\n    int cnt = 0;\n    for (;;) {\n      int n = in.read(buf, cnt, buf.length - cnt);\n      if (n <= 0)\n        break;\n      cnt += n;\n    }\n    if (cnt == buf.length)\n      return buf;\n    byte[] res = new byte[cnt];\n    System.arraycopy(buf, 0, res, 0, cnt);\n    return res;\n  } finally {\n    try {\n      in.close();\n    } catch (IOException ignored) {\n    }\n  }',NULL,2739,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/IO.java','AAAL33///T4='),(97,131,'2011-03-18 22:30:17','d',1,'This looks questionable\r\n',NULL,2746,5,'org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/SmartServiceInfoRefs.java','AAAL3n///d0='),(169,131,'2011-03-18 22:32:01','d',1,'asdf',NULL,2746,5,'org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/UploadPackServlet.java','AAAL3n///do='),(176,131,'2011-03-18 22:31:52','d',1,'ffff',NULL,2746,5,'org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/UploadPackServlet.java','AAAL3n///ds='),(58,131,'2011-03-18 22:31:38','d',1,'asdfsadf',NULL,2746,5,'org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/UploadPackServlet.java','AAAL3n///dw='),(396,100,'2011-03-18 12:37:02','P',1,'Okay, I have changed it back. It\'s clear to me now - whereas it wasn\'t in the beginning...','AAAL3n///kY=',2754,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL3n///j4='),(372,100,'2011-03-18 12:37:02','P',1,'Yes, this was handled correctly before. But when debugging such a case, we dived into the pick-from-theirs handling which seemed a little bit confusing to me.\r\n\r\nBut you are right, the comment is wrong and I have changed it.','AAAL3n///kU=',2754,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL3n///kI='),(372,5,'2011-03-18 12:16:31','P',1,'This was handled correctly also before, right?\n\nI think the comment is not correct. We also catch tracked files here: newly created files which have been added to the index but which didn\'t exist in OURS,THEIRS or BASE.',NULL,2754,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL3n///kU='),(396,5,'2011-03-18 12:16:31','P',1,'OURS is always unchanged regarding BASE and we always take what we find in THEIRS --- without any exception. If we find something in THEIRS we copy and if we don\'t find we don\'t copy.\nOnly one case get\'s additional treatment: if THEIRS contains a deletion we trigger an explicit working tree cleanup.\n\nFrom that point of view I liked the old comments more then this new one.',NULL,2754,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java','AAAL3n///kY='),(30,46,'2011-03-17 14:59:44','P',1,'Style-nit: no brackets around single line blocks',NULL,2755,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/PullFromUpstreamActionHandler.java','AAAL3n///rg='),(42,46,'2011-03-17 14:59:44','P',1,'I think this can not happen anymore, so this check can be removed',NULL,2755,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/PullFromUpstreamActionHandler.java','AAAL3n///rk='),(11,49,'2011-03-17 14:02:49','d',1,'Done','AAAL3n///to=',2758,1,'/COMMIT_MSG','AAAL3n///tc='),(11,46,'2011-03-17 13:54:10','P',1,'I guess this is for bug 338660, please add it.',NULL,2758,1,'/COMMIT_MSG','AAAL3n///to='),(151,49,'2011-03-17 14:01:13','d',1,'Done','AAAL3n///ts=',2758,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/BranchSelectionDialog.java','AAAL3n///tg='),(151,46,'2011-03-17 13:54:10','P',1,'I think we should simply check if the branch is checked out here in this class instead of changing the wizard and wizard page. Repository.getBranch().equals(newRefName)  should actually do the job.',NULL,2758,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/BranchSelectionDialog.java','AAAL3n///ts='),(7,49,'2011-03-17 14:42:54','d',1,'Done','AAAL3n///sg=',2758,2,'/COMMIT_MSG','AAAL3n///rs='),(7,46,'2011-03-17 14:27:52','P',1,'checkouted should read checked out',NULL,2758,2,'/COMMIT_MSG','AAAL3n///sg='),(153,49,'2011-03-17 14:42:49','d',1,'Done','AAAL3n///tQ=',2758,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/BranchSelectionDialog.java','AAAL3n///rw='),(153,46,'2011-03-17 14:09:29','P',1,'comment line should read \"already checked out from the new branch wizard\"',NULL,2758,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/BranchSelectionDialog.java','AAAL3n///tQ='),(51,46,'2011-03-18 07:19:28','P',1,'We should have some debug trace instrumentation here to help us with supportability.',NULL,2761,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/CommitOperation.java','AAAL3n///lg='),(263,46,'2011-03-18 07:19:28','P',1,'Progress monitoring and cancellation.',NULL,2761,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/CommitOperation.java','AAAL3n///lk='),(173,46,'2011-03-18 07:19:28','P',1,'We should have progress monitoring and cancellation here.',NULL,2761,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/CommitOperation.java','AAAL3n///lo='),(141,46,'2011-03-18 07:19:28','P',1,'We should probably add support for cancellation, especially within the loop calling AddToIndexOperation (including roll-back).',NULL,2761,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/CommitOperation.java','AAAL3n///ls='),(110,46,'2011-03-18 07:19:28','P',1,'These variables are currently only used if commitAll is true, so perhaps this could use some refactoring.',NULL,2761,4,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/CommitOperation.java','AAAL3n///lw='),(68,4,'2011-03-23 06:04:47','P',1,'I don\'t like playing with Exceptions in that way, I think you should rather do something like\n\n RevObject any = rw.parseAny(ref.getLeaf().getObjectId());\n if (any instanceof RevCommit) {\n 	// it\'s a lightweight tag\n } else if (any instanceof RevTag) {\n 	// it\'s an annotated or signed tag\n }',NULL,2764,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewLabelProvider.java','AAAL3n//+0M='),(218,1,'2011-03-17 19:41:22','P',1,'Please document that the path is relative to the top level of the repository, and must either name a file or a directory exactly (it doesn\'t support regex, wildcards, etc.)',NULL,2767,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java','AAAL3n///ng='),(216,1,'2011-03-17 19:41:22','P',1,'Strictly speaking, the -- is to break options away from non-option arguments. Saying its the same as -- <path> is a little weird then.',NULL,2767,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java','AAAL3n///nk='),(217,1,'2011-03-17 19:41:22','P',1,'Style-nit: Trailing space.',NULL,2767,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/LogCommand.java','AAAL3n///no='),(88,46,'2011-03-22 18:05:54','P',1,'Hmm... I believe you are interested in a single path, right? In this case, perhaps you should look at the static TreeWalk.forPath() method. You provide a repo, a path and a list of trees (the ones you add in your code already).\nWith this, you don\'t need to add a PathFilter. Adding a ANY_DIFF filter might still make a difference: TreeWalk.forPath should return null if the filter is set and the entries don\'t \"differ\" (whatever exactly that means). If the filter does what you expect, you could skip the calculateKindImpl and simply return IN_SYNC...\nYou probably won\'t see much performance difference here on the TreeWalk, as it is a single path access, but it may well simplify your code.',NULL,2779,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/synchronize/GitSyncInfo.java','AAAL3n//+6U='),(85,46,'2011-03-22 18:05:54','P',0,'Not sure if you can simply drop this. The filter will only be useless as long as the TreeWalk has only one tree (i.e. as long you don\'t go through the code in line 95). So you might want to move this line into the block after line 94.... But I\'m not quite sure, as I don\'t understand your code completely...',NULL,2779,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/mapping/GitTreeTraversal.java','AAAL3n//+6Q='),(81,4,'2011-03-24 19:24:53','P',1,'style nit: no braces here',NULL,2786,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/sharing/SharingWizard.java','AAAL3n//+h8='),(298,44,'2011-03-21 18:33:26','P',1,'white space error',NULL,2788,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/team/actions/BranchAndResetActionTest.java','AAAL3n///Yc='),(299,44,'2011-03-22 15:49:06','P',1,'The join should happen after the question and replace the waitInUi',NULL,2788,2,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/team/actions/BranchAndResetActionTest.java','AAAL3n//+7Y='),(13,46,'2011-03-22 08:40:42','P',1,'Signed-off missing',NULL,2797,1,'/COMMIT_MSG','AAAL3n//+9w='),(180,46,'2011-03-22 08:40:42','P',1,'I think this is not quite the correct check. It should be something like\n\nif (ObjectId.isId(repository.getFullBranch()) && bop.getResult().....)\n\ninstead. This will also make the change in CheckoutCommand obsolete. The point is, we shouldn\'t rely on the refName parameter to decide whether the head is detached after the operation or not.\n\nFor example, right now, with this code, you would get a wrong detached head warning pop-up when trying to checkout a remote branch pointing to the same commit as the currently checked out branch as a consequence of bug 315166.',NULL,2797,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL3n//+98='),(180,79,'2011-03-22 10:12:13','P',1,'I changed the check, thanks for the tip.','AAAL3n//+98=',2797,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL3n//+9Q='),(35,46,'2011-03-22 08:40:42','P',1,'Not really needed here (see remark in BranchOperationUI)',NULL,2797,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/CheckoutCommand.java','AAAL3n//+94='),(761,46,'2011-03-22 08:40:42','P',1,'I find the last sentence a bit confusing or just overwhelming. Perhaps we should simply say, \"If you want to make changes, create and/or checkout a local branch first\".',NULL,2797,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL3n//+90='),(761,79,'2011-03-22 10:12:13','P',1,'Done','AAAL3n//+90=',2797,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL3n//+9c='),(13,46,'2011-03-22 10:15:28','P',1,'Signed-off still missing.',NULL,2797,2,'/COMMIT_MSG','AAAL3n//+9E='),(17,46,'2011-03-22 07:42:12','P',1,'We also need Change-Id and Signed-off. Normally, you can add them both via the commit dialog by clicking the check boxes, but since you have uploaded this already, you can not use the check box for the change id (as it would create a new id) but should add it by copy/paste the change id from this change. Wen you upload again, you should get a second patch set with the commit message updated.',NULL,2875,1,'/COMMIT_MSG','AAAL3n//++I='),(7,46,'2011-03-22 07:42:12','P',1,'The first line should be short (70 chars max) and concise, like \"Add scoped keybindings to RepositoriesView\" or such (we also have a convention that suggests to start this first line with [repoView], but that\'s rather optional: \"[repoView] Add scoped keybindings for copy/paste\"). See contributor guide.',NULL,2875,1,'/COMMIT_MSG','AAAL3n//++M='),(266,46,'2011-03-22 07:42:12','P',1,'Style-nit: no brackets around single-line blocks',NULL,2875,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java','AAAL3n//++E='),(10,5,'2011-03-22 15:08:48','P',1,'Sorry, I just overlooked your proposal. I think your proposal using FileSnapshot would solve my specific problem of instable EGit tests much better. I\'ll review your proposal. We could even abandon this change then, but if I understood you correctly you still need a refresh() method for DHT use cases. For that I would leave this one open.','AAAL3n//+8c=',2880,1,'/COMMIT_MSG','AAAL3n//+70='),(10,1,'2011-03-22 14:08:25','P',1,'Have we tried fixing this?\n\nIdeally RefDatabase would consider refs \"racily clean\" if they were modified too close to the last scan and be scanned again, similar to what we have done with the \"racily clean\" files in the DirCache.\n\nIs the problem that my change I1556b7e7ea21c31ff76bca930269e0cc7d55cd26 (\"RefDirectory: Use FileSnapshot for loose refs\") is still outstanding?',NULL,2880,1,'/COMMIT_MSG','AAAL3n//+8c='),(221,5,'2011-03-22 15:08:48','P',1,'+1\nTherefore I leave this proposal open and don\'t just abandon it in favour of your FileSnapshot solution (which would solve my specific problem)','AAAL3n//+8Q=',2880,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java','AAAL3n//+7s='),(221,1,'2011-03-22 14:11:50','P',1,'As much as I hate the idea that we might need this for the local system case, this may actually make a lot of sense for the DHT implementation. Right now the DHT code caches the refs on the first access, and then never looks at the backing database again. Its expected that the caller would close and re-open the Repository object before needing a refreshed set of references. This works OK in a server environment, where the Repository is only needed for a short time period for the current request. But is less than ideal for an IDE or GUI application.\n\nSo as much as I dislike needing this, I\'m actually pretty inclined to +2 the introduction of this method to the API.',NULL,2880,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/RefDatabase.java','AAAL3n//+8Q='),(381,1,'2011-03-27 21:02:42','P',1,'Correct. The getAllRefs() should still trigger the listener to be fired, which is what this method exists for.','AAAL3n//+7w=',2880,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL33///+w='),(381,5,'2011-03-22 15:08:48','P',1,'If your FileSnapshot solution is in we don\'t need a modification in this file anymore, right?','AAAL3n//+8U=',2880,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL3n//+7w='),(381,1,'2011-03-22 14:11:50','P',1,'This shouldn\'t be necessary anymore.\n\nRefDirectory.refresh() should trigger an event listener if one or more refs was detected to be modified, which means we can drop the getAllRefs() call here.',NULL,2880,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java','AAAL3n//+8U='),(254,46,'2011-03-30 08:20:17','d',1,'Done','AAAL33///uc=',2881,1,'org.eclipse.egit.ui/plugin.properties','AAAL33///qg='),(254,4,'2011-03-29 22:30:17','P',1,'which option is about an error dialog ? Looks like these are all confirmation dialogs',NULL,2881,1,'org.eclipse.egit.ui/plugin.properties','AAAL33///uc='),(54,4,'2011-03-29 22:30:17','P',1,'I propose to change this page to only have one group named \"Show confirmation dialogs\" and all options provided as checkboxes. I would order the list as follows:\n\n\"Show confirmation dialogs\"\n- Initial configuration\n- Home directory warning (Windows only)\n- Rebase confirmation\n- Detached Head warning\n\nI think this would be easier to understand',NULL,2881,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/DialogsPreferencePage.java','AAAL33///uY='),(254,4,'2011-03-25 02:03:21','P',1,'style nit: trailing whitespace, more below',NULL,2897,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewRemoteHandlingTest.java','AAAL3n//+gU='),(1,4,'2011-03-25 18:09:47','P',1,'missing license header',NULL,2898,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/NewRemoteDialog.java','AAAL3n//+cA='),(81,49,'2011-03-24 00:49:28','P',0,'Irrelevant line deletation.',NULL,2903,2,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/op/IgnoreOperationTest.java','AAAL3n//+pA='),(203,49,'2011-03-24 00:49:28','P',1,'Style nit: we don\'t use brackets for single line blocks',NULL,2903,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/IgnoreOperation.java','AAAL3n//+o8='),(180,49,'2011-03-24 00:49:28','P',1,'AFAIR Mac Os X uses only \'\\r\' as a line end so this code would not work on Os X.',NULL,2903,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/IgnoreOperation.java','AAAL3n//+pE='),(196,100,'2011-03-25 09:01:38','P',1,'You can also remove this bracket.',NULL,2903,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/IgnoreOperation.java','AAAL3n//+e0='),(174,100,'2011-03-25 09:01:38','P',1,'\"...see if it...\"',NULL,2903,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/IgnoreOperation.java','AAAL3n//+eo='),(204,100,'2011-03-25 09:01:38','P',1,'You shouldn\'t assign the new value to the parameter. I would prefer having a local variable.',NULL,2903,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/IgnoreOperation.java','AAAL3n//+es='),(203,100,'2011-03-25 09:01:38','P',1,'See above.',NULL,2903,3,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/IgnoreOperation.java','AAAL3n//+ew='),(82,6,'2011-04-19 14:06:33','P',1,'typo: for checking out ...',NULL,2911,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL4H///Gg='),(226,6,'2011-04-19 14:06:33','P',1,'In the dialog the currently checked out branch should be preselected.',NULL,2911,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL4H///Gs='),(50,6,'2011-04-19 14:06:33','P',1,'The button label \"OK\" is confusing. Please change it to \"Create Branch\".',NULL,2911,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CreateBranchDialog.java','AAAL4H///Gk='),(29,6,'2011-04-19 14:06:33','P',1,'Here the preselection should be added.',NULL,2911,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CreateBranchDialog.java','AAAL4H///Go='),(9,4,'2011-03-24 18:58:49','P',0,'you may want to add your copyright header ...',NULL,2916,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubService.java','AAAL3n//+iQ='),(39,4,'2011-03-24 18:58:49','P',1,'style nit: trailing whitespace, more of these below',NULL,2916,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubService.java','AAAL3n//+iU='),(12,46,'2011-03-25 11:21:34','P',1,'...was cast... instead of ...was casted...',NULL,2919,1,'/COMMIT_MSG','AAAL3n//+eQ='),(15,46,'2011-03-25 11:21:34','P',1,'I doubt that this change would fix this bug, so I guess we should remove it.',NULL,2919,1,'/COMMIT_MSG','AAAL3n//+eU='),(320,208,'2011-03-25 18:24:10','P',1,'Done','AAAL3n//+e8=',2921,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewLabelProvider.java','AAAL3n//+bY='),(320,46,'2011-03-25 08:24:29','P',1,'Code style: Even though the compiler would optimize this anyway, I\'d prefer to have the pattern as a constant here.',NULL,2921,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewLabelProvider.java','AAAL3n//+e8='),(14,11,'2011-03-29 08:27:24','P',1,'please add a target jre, see https://github.com/manandbytes/org.eclipse.mylyn.github/commit/75b942d9263a94ed55c3747a4acdd49e319c9882 for reference',NULL,2926,1,'org.eclipse.mylyn.github-feature/github.target','AAAL33///0I='),(70,46,'2011-03-28 14:34:08','P',1,'I think this case should be in the list of fallback cases (unfortunately, I don\'t know how to create a COPY diff)...',NULL,2927,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiffLabelProvider.java','AAAL33///7c='),(7,79,'2011-03-31 20:54:01','P',1,'Repositories -> repositories\n\nThe message should mention that it\'s a table with a summary and that the normal result dialog can be shown per repository.',NULL,2928,1,'/COMMIT_MSG','AAAL33///bQ='),(94,79,'2011-03-31 20:54:01','P',1,'Maybe you could extract some local variables here so that the code is not indented like this.',NULL,2928,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/PullOperation.java','AAAL33///bM='),(1837,79,'2011-03-31 20:54:01','P',1,'Thanks, I missed that. Should be in a separate commit or mentioned in the commit message.',NULL,2928,1,'org.eclipse.egit.ui/plugin.xml','AAAL33///bI='),(33,79,'2011-03-31 20:54:01','P',1,'how about this: new HashSet<Repository>(Arrays.asList(repos));',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/PullFromUpstreamActionHandler.java','AAAL33///bE='),(1017,79,'2011-03-31 20:54:01','P',1,'Result -> result',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///a0='),(1016,79,'2011-03-31 20:54:01','P',1,'status -> Status (title capitalization)',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///a4='),(476,79,'2011-03-31 20:54:01','P',1,'Repositories -> repositories',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///a8='),(1027,79,'2011-03-31 20:54:01','P',1,'multiple -> Multiple',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///ag='),(1026,79,'2011-03-31 20:54:01','P',1,'status -> Status',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///ak='),(1025,79,'2011-03-31 20:54:01','P',1,'Refs were updated -> refs updated\n(consistency with \"Nothing updated\")',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///ao='),(1022,79,'2011-03-31 20:54:01','P',1,'Result -> result',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///as='),(1021,79,'2011-03-31 20:54:01','P',1,'status -> Status',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///aw='),(473,79,'2011-03-31 20:54:01','P',1,'No -> Not',NULL,2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///bA='),(476,79,'2011-04-01 09:13:08','P',1,'There are two kinds of capitalizations styles in user interfaces: sentence and header/title, see the GNOME [1] or Apple HIG [2].\n\nThe task name should have sentence capitalization, based on what I can see from other task names in Eclipse.\n\nIn the Git man pages, \"repository\" is never capitalized, and they are pretty well-written. Also, looking at the CVS repository property page, they don\'t capitalize it either in the text. If repository is part of a title, then it should be capitalized (header capitalization), but not in sentence capitalization.\n\nAlso, we would have to capitalize many Git-specific terms, such as \"branch\" (it\'s not a branch of a tree, it\'s a Git branch), tag, tree..\n\n[1] http://library.gnome.org/devel/hig-book/stable/design-text-labels.html.en#layout-capitalization\n[2] http://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGText/XHIGText.html#//apple_ref/doc/uid/TP30000365-BABDIBBH','AAAL33///YY=',2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///Ws='),(1025,46,'2011-04-01 07:00:24','P',1,'Again, same as above: this is a \"term\", and I think it should be upper case.','AAAL33///ao=',2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///YU='),(476,46,'2011-04-01 07:00:24','P',1,'Well, we\'re not quite consistent with that in our texts, but from my UI knowledge, I\'d say it should be upper case, and the majority of occurences in this file is upper case, too. The rationale from a UI point of view is that it is not a \"generic\" repository that\'s meant but a Git-specific term.','AAAL33///a8=',2928,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///YY='),(1004,79,'2011-04-03 16:47:54','P',1,'repositories -> Repositories (title capitalization here)',NULL,2928,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///M0='),(1002,79,'2011-04-03 16:47:54','P',1,'Refs -> refs',NULL,2928,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL33///M4='),(5,11,'2011-03-30 16:21:36','P',1,'Bug in Gerrit when displaying diff for this file. There is no line 5 in the new version, please ignore previous comment.','AAAL33///lU=',2929,1,'org.eclipse.mylyn.github.core/build.properties','AAAL33///lI='),(5,11,'2011-03-30 16:07:47','P',1,'Second instance of \'bin.includes\' should be removed. With changes in lines 3-4 it works for me.',NULL,2929,1,'org.eclipse.mylyn.github.core/build.properties','AAAL33///lU='),(25,11,'2011-03-30 18:27:56','d',1,'whitespace error',NULL,2930,1,'org.eclipse.mylyn.github-site/pom.xml','AAAL33///k0='),(253,79,'2011-03-28 22:13:50','P',1,'Do you mean the one under \"Git\"? I disagree, because that preference defaults to the home directory. And the CVS project set import also imports into the workspace.','AAAL3n//+Z8=',2936,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL33///4Y='),(253,103,'2011-03-26 19:40:39','P',1,'The default repository folder path from the Team preferences would be better (and would be the path that i would expect).',NULL,2936,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL3n//+Z8='),(4,11,'2011-03-29 07:54:30','P',1,'May be itt would be better to start from scratch? It should be \'1.0\' as it\'s actualy the first version of reference\'s format.',NULL,2936,2,'egit.psf','AAAL33///0o='),(4,11,'2011-03-29 20:57:12','d',1,'> I thought maybe it should correspond to the EGit version.\n\nIt makes no sense.','AAAL33///vM=',2936,2,'egit.psf','AAAL33///vE='),(4,79,'2011-03-29 20:23:10','P',1,'What do you mean, start from scratch?\n\nI thought maybe it should correspond to the EGit version. But 1.0 makes sense, I\'ll change it.','AAAL33///0o=',2936,2,'egit.psf','AAAL33///vM='),(261,11,'2011-03-29 07:54:30','P',1,'That is exactly why I placed a TODO here. +1 for asking user where to clone but -1 from implementation PoV ;-)','AAAL33///0Y=',2936,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL33///0Q='),(261,103,'2011-03-29 07:32:34','P',1,'And because it\'s default is the home directory, i always set that path to my folder, where all Git repositories are and should be located. I don\'t clone them into the workspace because of some bugs with m2eclipse. Nevertheless what the default is, i think, we should either respect and use that option wherever it\'s possible, or remove it. If there is that option, and some part of EGit uses it, and other parts don\'t use it, it would be confusing for the users, and that\'s something we should avoid.',NULL,2936,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL33///0Y='),(261,79,'2011-03-29 20:23:10','P',1,'I already raised the issue that the home directory is a bad default on another change, maybe that needs to be discussed on the mailing list.\n\nOk, so it should show a dialog here, similar to the clone dialog (but only once, not for each repository). I\'ll do that for the next patch set.','AAAL33///0Q=',2936,2,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL33///vQ='),(23,79,'2011-04-15 20:07:11','P',1,'You can, for example then the repo includes two projects (in two toplevel directories) and you want to have one project from one branch and the other from another branch. Then the import works fine.','AAAL4H///OE=',2936,7,'/COMMIT_MSG','AAAL4H///Nk='),(23,4,'2011-04-15 15:30:28','P',1,'What\'s the use case for cloning the same repo multiple times ? You anyway can\'t import the same project multiple times into the same workspace.',NULL,2936,7,'/COMMIT_MSG','AAAL4H///OE='),(23,4,'2011-04-20 11:50:53','P',1,'you are right','AAAL4H///Nk=',2936,7,'/COMMIT_MSG','AAAL4H//++s='),(58,79,'2011-04-15 20:07:11','P',1,'I\'ll change it (still not used to it).','AAAL4H///Qg=',2936,7,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/GitProjectSetCapabilityTest.java','AAAL4H///Ng='),(58,4,'2011-04-15 15:30:28','P',1,'style nit: we don\'t use braces around single line blocks, more occurrences throughout this patch',NULL,2936,7,'org.eclipse.egit.core.test/src/org/eclipse/egit/core/test/GitProjectSetCapabilityTest.java','AAAL4H///Qg='),(214,79,'2011-04-15 20:07:11','P',1,'The preferences in egit.core use IEclipsePreferences, whereas the preferences in egit.ui use IPreferenceStore. Is there a reason for this? For example, how can a FieldEditor be used with IEclipsePreferences?','AAAL4H///Pg=',2936,7,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL4H///Nc='),(225,79,'2011-04-15 20:07:11','P',1,'Hm, maybe we should explicitly check for that and throw a TeamException with a message. Currently it will fail with an internal exception.','AAAL4H///PQ=',2936,7,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL4H///NQ='),(214,4,'2011-04-15 15:30:28','P',1,'the timeout shouldn\'t be hardcoded, we have a preference for that (see GitCloneWizard) which needs to be moved to egit.core so that you can also use that here. This should be done in a separate change this one needs to depend on.',NULL,2936,7,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL4H///Pg='),(225,4,'2011-04-15 15:30:28','P',1,'if the same repo/workspace is listed twice with different branches this will fail as you can\'t import the same project twice into the same workspace',NULL,2936,7,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL4H///PQ='),(225,4,'2011-04-20 11:50:53','P',1,'yes we should check this explicitly and raise a proper message','AAAL4H///NQ=',2936,7,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL4H//++0='),(214,79,'2011-04-20 12:54:34','P',1,'Hm, I read the mailing list thread and also the minimalistic Eclipse API documentation. But I still don\'t know how to use field editors with IEclipsePreferences.\n\nWhen we move the timeout preference, the namespace changes from \"org.eclipse.egit.ui\" to \"org.eclipse.egit.core\". But AFAICS, a FieldEditorPreferencePage can only work on one preference store (corresponding to one namespace). In the case of GitPreferenceRoot, this is \"org.eclipse.egit.ui\". I read that you can nest preference stores, but that it only works for \"get\", not for \"set\" operations.\n\nOne way it may work is when both used the same namespace, \"org.eclipse.egit\". But that would mean we had to migrate all the existing preferences to this namespace, right?','AAAL4H//++w=',2936,7,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL4H//++k='),(214,4,'2011-04-20 11:50:53','P',1,'I think we should use the newer API IEclipsePreferences as it is more powerful [1], AFAIK this was done in some places, obviously this wasn\'t done everywhere. \n\n[1] http://dev.eclipse.org/newslists/news.eclipse.platform/msg42275.html','AAAL4H///Nc=',2936,7,'org.eclipse.egit.core/src/org/eclipse/egit/core/GitProjectSetCapability.java','AAAL4H//++w='),(1,79,'2011-04-15 20:07:11','P',1,'Will do.','AAAL4H///OY=',2936,7,'org.eclipse.egit.psf-feature/build.properties','AAAL4H///NY='),(1,4,'2011-04-15 15:30:28','P',1,'this is incomplete, needs to also list feature.properties, license.html, see the other egit features',NULL,2936,7,'org.eclipse.egit.psf-feature/build.properties','AAAL4H///OY='),(9,79,'2011-04-15 20:07:11','P',1,'Will do.','AAAL4H///OQ=',2936,7,'org.eclipse.egit.psf-feature/feature.properties','AAAL4H///NU='),(9,4,'2011-04-15 15:30:28','P',1,'add \"(Incubation)\" here as egit is still in incubation',NULL,2936,7,'org.eclipse.egit.psf-feature/feature.properties','AAAL4H///OQ='),(101,4,'2011-05-03 22:31:01','P',1,'\"to to\" looks like a typo',NULL,2936,11,'org.eclipse.egit.core/src/org/eclipse/egit/core/coretext.properties','AABOIn///tA='),(21,4,'2011-08-16 15:37:25','P',1,'Done','AABOAn///Lw=',2936,15,'org.eclipse.egit.psf-feature/feature.properties','AABOAn///Lg='),(21,4,'2011-08-16 15:36:24','P',1,'copyright may not use \"et.al.\" but shall use \"and others\" instead (see CQ5438)',NULL,2936,15,'org.eclipse.egit.psf-feature/feature.properties','AABOAn///Lw='),(300,1,'2011-03-27 20:45:14','P',1,'Typo on the name? Shouldn\'t this be overrideGitPrefix?\n\nShould we use SystemReader.getInstance().getProperty() rather than System.getProperty()?',NULL,2939,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL33////Y='),(300,1,'2011-03-27 22:39:20','P',1,'Above you used SystemReader, but here you used System.getProperty. Why not also use SystemReader here?',NULL,2939,2,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL33///9Y='),(300,8,'2011-04-01 08:13:40','P',1,'Done','AAAL33///9Y=',2939,2,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL33///XY='),(59,49,'2011-03-29 14:48:29','d',1,'Done','AAAL33///zI=',2940,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RebaseCurrentRefCommand.java','AAAL33///yQ='),(59,46,'2011-03-29 13:34:21','P',1,'This fails when you call rebase from a RepositoryNode (i.e. a \"Repository\" node from the repo view; in this case, ref should simply be null; doing something like \n\nif (node.getType() == RepositoryTreeNodeType.Ref)\nref = ((RefNode)...\nelse\nref = null;\n\nshould do the job.',NULL,2940,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/RebaseCurrentRefCommand.java','AAAL33///zI='),(102,49,'2011-03-29 19:10:14','P',1,'Done','AAAL33///xY=',2940,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/shared/AbstractSharedCommandHandler.java','AAAL33///wM='),(86,49,'2011-03-29 19:10:14','P',1,'Done','AAAL33///xc=',2940,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/shared/AbstractSharedCommandHandler.java','AAAL33///wQ='),(86,46,'2011-03-29 15:25:04','P',1,'...cannot be determined',NULL,2940,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/shared/AbstractSharedCommandHandler.java','AAAL33///xc='),(102,46,'2011-03-29 15:25:04','P',1,'...cannot be determined',NULL,2940,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/shared/AbstractSharedCommandHandler.java','AAAL33///xY='),(47,49,'2011-03-29 19:10:14','P',1,'Thank you this hint.\n\nDone','AAAL33///xU=',2940,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/shared/RebaseCurrentRefCommand.java','AAAL33///wI='),(47,46,'2011-03-29 15:25:04','P',1,'You can\'t simply cast here (I learned this the hard way; the framework can return just about anthing here). Check the returned object for instanceof IStructuredSelection and simply return null otherwise.',NULL,2940,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/shared/RebaseCurrentRefCommand.java','AAAL33///xU='),(36,49,'2011-03-29 19:10:14','P',1,'Done','AAAL33///xo=',2940,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/ResourcePropertyTester.java','AAAL33///wU='),(36,46,'2011-03-29 15:25:04','P',1,'mapping may be null at this point',NULL,2940,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/ResourcePropertyTester.java','AAAL33///xo='),(50,49,'2011-03-30 18:27:57','P',1,'ClassCastException should never appear here. In case when selected element isn\'t instance of ISelection the ExecutionException will be thrown from org.eclipse.ui.handlers.HandlerUtil.getCurrentSelectionChecked(ExecutionEvent) and we can\'t prevent from throwing this exception. Therefore I don\'t think that making currentSelection to be an type of Object make any sense here.','AAAL33///ro=',2940,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/shared/RebaseCurrentRefCommand.java','AAAL33///kw='),(50,46,'2011-03-30 05:59:54','P',1,'I\'m not absolutely sure about this, but please use Object, not ISelection here; we aren\'t losing anything bug might prevent ClassCastExceptions in certain circumstances.',NULL,2940,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commands/shared/RebaseCurrentRefCommand.java','AAAL33///ro='),(133,1,'2011-03-28 14:15:42','P',1,'Is the .git folder always the easiest path to give here? I would expect applications to want to pass something like new File(\".\") and have us automatically get the repository for the current working directory. Which starts to imply using a FileRepositoryBuilder here rather than assuming the argument is exactly the $GIT_DIR.',NULL,2947,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL33///7o='),(133,5,'2011-03-29 14:35:48','P',1,'I also like open() and wrap() because they express nicely the side-effects (you would not expect any git repo creation in this case). I like them as static methods (and not as commands) because there is no real equivalent for such op\'s in native git command line.\n\nBut when you really want to create a new git repo in an empty dir on the filesystem I think going through git.init()... is quite consistent - that\'s what I would do with native git. Therefore I personally would like to add a check to open() to make sure the repo does not yet exist.\n\nI\'ll suggest something like that in a new change','AAAL33///yw=',2947,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL33///yo='),(133,1,'2011-03-29 14:04:40','P',1,'Using Git.init().setDirectory().call() to obtain a Git instance from a File is awkward at best.\n\nI think we should do:\n\n  public static Git open(File path) {\n    return Git.init().setDirectory(path).call();\n  }\n\n  public static Git wrap(Repository repo) {\n    return new Git(repo);\n  }\n\nin this class.','AAAL33///zo=',2947,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL33///yw='),(133,5,'2011-03-29 10:59:17','P',1,'Hmmm, you are right. The logic which you miss is already there in Git.init().setDirectory(...).call().\nBut then: why do I need this constructor if InitCommand does everything? I will abandon this one.','AAAL33///7o=',2947,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL33///zo='),(42,4,'2011-03-29 23:34:29','P',1,'Done','AAAL33///zw=',2952,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/EGitTestCase.java','AAAL33///tM='),(42,46,'2011-03-29 10:11:24','P',1,'Shouldn\'t we put this into a finally block? Saves one line of code...',NULL,2952,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/common/EGitTestCase.java','AAAL33///zw='),(94,5,'2011-04-01 23:38:38','P',1,'I agree. Let\'s do it like that','AAAL33///ZY=',2969,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL33///P0='),(94,1,'2011-03-31 22:21:25','P',1,'I wonder if the File argument here shouldn\'t be a little bit more flexible and try to guess what the caller wanted.\n\nIf the caller passes us the working directory and there is a .git within it, should we use the .git/ subdirectory instead of failing?\n\nI think we should for this simple API. Most users of this API are going to try that first and get annoyed that they have to test for the .git/ subdirectory themselves.\n\nIf the caller needs precise control over how to find the .git/ directory, or wants the scan-up rules, they can use a RepositoryBuilder and wrap(). But those are more expert uses of the API.',NULL,2969,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL33///ZY='),(352,1,'2011-03-31 22:27:16','P',1,'Style-nit: trailing space.',NULL,2970,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java','AAAL33///ZQ='),(214,1,'2011-03-31 22:27:16','P',1,'Don\'t look this up again, you must use the same commit that the map was read from.',NULL,2970,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/NotesCommand.java','AAAL33///ZA='),(220,1,'2011-03-31 22:27:16','P',1,'The inserter has to flush before this method is called.\n\nBut why are we doing a force update here? This should be setting the expected old object id and doing a normal fast-forward update.',NULL,2970,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/NotesCommand.java','AAAL33///ZE='),(122,1,'2011-03-31 22:27:16','P',1,'This should be a settable option.',NULL,2970,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/NotesCommand.java','AAAL33///ZI='),(79,1,'2011-03-31 22:27:16','P',1,'These should each be their own GitCommand class, with factory methods on Git like noteList(), noteShow(), noteEdit(). That matches with the branch \"command\".',NULL,2970,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/NotesCommand.java','AAAL33///ZM='),(68,2,'2011-04-11 02:23:44','P',1,'I\'ll rename it to AddNote for now.','AAAL4H///pk=',2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///o4='),(101,2,'2011-04-11 02:23:44','P',1,'ok','AAAL4H///ps=',2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///o8='),(128,1,'2011-04-11 00:49:41','P',1,'Please document somewhere that if the object already has a note, the existing note is *replaced*.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///p4='),(104,2,'2011-04-11 02:23:44','P',1,'done','AAAL4H///qA=',2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///pA='),(128,2,'2011-04-11 02:23:44','P',1,'done','AAAL4H///p4=',2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///pE='),(152,2,'2011-04-11 02:23:44','P',1,'done','AAAL4H///qk=',2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///pI='),(68,1,'2011-04-11 00:49:41','P',1,'This is called AddNotes, but it only adds one note. Should we support multiple notes at once in a batch, or should we rename the class to AddNote?',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///pk='),(145,2,'2011-04-11 02:23:44','P',1,'done.','AAAL4H///qs=',2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///pM='),(149,2,'2011-04-11 02:23:44','P',1,'done','AAAL4H///qw=',2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///pQ='),(101,1,'2011-04-11 00:49:41','P',1,'This early flush is unnecessary, see commitNoteMap().',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///ps='),(150,2,'2011-04-11 02:23:44','P',1,'done','AAAL4H///qo=',2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///pU='),(104,1,'2011-04-11 00:49:41','P',1,'The local variable \"note\" is unnecessary.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///qA='),(152,1,'2011-04-11 00:49:41','P',1,'Pass the RevWalk you have in call().',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///qk='),(150,1,'2011-04-11 00:49:41','P',1,'Missing:\n\n  if (notesCommit != null)\n    refUpdate.setExpectedOldObjectId(notesCommit);\n  else\n    refUpdate.setExpectedOldObjectId(ObjectId.zeroId());',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///qo='),(145,1,'2011-04-11 00:49:41','P',1,'Use builder.setCommitter(builder.getAuthor()) to ensure the timestamp is identical.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///qs='),(149,1,'2011-04-11 00:49:41','P',1,'You need an inserter.flush() after here.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/AddNotesCommand.java','AAAL4H///qw='),(85,1,'2011-04-11 00:49:41','P',1,'Unnecessary.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/ListNotesCommand.java','AAAL4H///qc='),(99,1,'2011-04-11 00:49:41','P',1,'Unnecessary.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/ListNotesCommand.java','AAAL4H///qg='),(103,1,'2011-04-11 00:49:41','P',1,'Unnecessary.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/ListNotesCommand.java','AAAL4H///qY='),(102,1,'2011-04-11 00:49:41','P',1,'The local variable \"note\" is unnecessary.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/RemoveNotesCommand.java','AAAL4H///p0='),(114,1,'2011-04-11 00:49:41','P',1,'Style-nit: Trailing space.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/RemoveNotesCommand.java','AAAL4H///p8='),(68,1,'2011-04-11 00:49:41','P',1,'Same remark about single note operation, but plural name.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/RemoveNotesCommand.java','AAAL4H///pg='),(124,1,'2011-04-11 00:49:41','P',1,'See my comments in AddNotesCommand.commitNoteMap() as the code is identical here.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/RemoveNotesCommand.java','AAAL4H///po='),(99,1,'2011-04-11 00:49:41','P',1,'This flush is unnecessary this early, see commitNoteMap().',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/RemoveNotesCommand.java','AAAL4H///pw='),(64,1,'2011-04-11 00:49:41','P',1,'Same remark about single note operation, but plural name.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/ShowNotesCommand.java','AAAL4H///pc='),(94,1,'2011-04-11 00:49:41','P',1,'The local variable \"note\" is unnecessary.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/ShowNotesCommand.java','AAAL4H///qE='),(86,1,'2011-04-11 00:49:41','P',1,'Unnecessary.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/ShowNotesCommand.java','AAAL4H///qI='),(99,1,'2011-04-11 00:49:41','P',1,'Unnecessary.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/ShowNotesCommand.java','AAAL4H///qM='),(84,1,'2011-04-11 00:49:41','P',1,'Unnecessary.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/ShowNotesCommand.java','AAAL4H///qQ='),(60,1,'2011-04-11 00:49:41','P',1,'Style-nit: Trailing space.',NULL,2970,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/ShowNotesCommand.java','AAAL4H///qU='),(2480,4,'2011-04-19 23:33:34','P',1,'trailing whitespace',NULL,2976,6,'org.eclipse.egit.ui/plugin.xml','AAAL4H///AA='),(13,4,'2011-04-19 23:33:34','P',1,'wrong javadoc',NULL,2976,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/AssumeUnchangedAction.java','AAAL4H//+/4='),(12,4,'2011-04-19 23:33:34','P',1,'wrong javadoc',NULL,2976,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/DisconnectAction.java','AAAL4H//+/8='),(12,4,'2011-04-19 23:33:34','P',1,'wrong javadoc',NULL,2976,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/NoAssumeUnchangedAction.java','AAAL4H//+/0='),(14,4,'2011-04-19 23:33:34','P',1,'wrong javadoc',NULL,2976,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/UntrackAction.java','AAAL4H//+/w='),(9,4,'2011-03-30 23:26:11','P',1,'better: ... we sometimes face the problem that the file .git/index.lock can\'t be deleted ...',NULL,2982,1,'/COMMIT_MSG','AAAL33///hk='),(12,4,'2011-03-30 23:26:11','P',1,'s/This change proposes to use/Instead use/',NULL,2982,1,'/COMMIT_MSG','AAAL33///hY='),(12,5,'2011-04-02 00:43:41','P',1,'Done','AAAL33///hY=',2982,1,'/COMMIT_MSG','AAAL33///O0='),(9,5,'2011-04-02 00:43:41','P',1,'There is one case inside SAP where I still investigate and where the process holding the file-handle is not from outside but from eclipse. \nMaybe some resource monitor, decorator, .... Investigations are not yet over - I\'ll keep you up to date.','AAAL33///Zg=',2982,1,'/COMMIT_MSG','AAAL33///O4='),(15,5,'2011-04-02 00:43:41','P',1,'Done','AAAL33///Yw=',2982,1,'/COMMIT_MSG','AAAL33///Os='),(9,5,'2011-04-02 00:43:41','P',1,'Done','AAAL33///hk=',2982,1,'/COMMIT_MSG','AAAL33///PE='),(9,4,'2011-04-01 15:35:05','P',1,'I heard from another user that also Google desktop search sometimes interferes here','AAAL33///Y0=',2982,1,'/COMMIT_MSG','AAAL33///UY='),(9,4,'2011-03-31 22:51:06','P',1,'see bug 335959, it seems that there is a good chance that an antivirus scanner would jump on the .lock file shortly after creation and cause the deletion to fail','AAAL33///Zg=',2982,1,'/COMMIT_MSG','AAAL33///Y0='),(15,4,'2011-03-31 22:51:06','P',1,'Bug: 335959 should be mentioned here',NULL,2982,1,'/COMMIT_MSG','AAAL33///Yw='),(9,1,'2011-03-31 22:08:33','P',1,'Why does this file fail to delete on Windows? The calling thread is the only one that should be touching the .lock file. So what is causing the deletion to fail?',NULL,2982,1,'/COMMIT_MSG','AAAL33///Zg='),(496,4,'2011-03-30 23:23:24','P',1,'I think we should not hide this exception, if deleting the lock file fails, the next operation which needs the same lock will fail, hence I think we should rather fail early. I think it would also make sense to throw a checked exception to make the change in behavior explicit to all using applications though it\'s an API change then.',NULL,2982,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LockFile.java','AAAL33///hs='),(496,5,'2011-04-02 00:43:41','P',1,'I tried it out - but doing this API modification causes so many modifications already in JGit that it is worth his own proposal.','AAAL33///hs=',2982,1,'org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LockFile.java','AAAL33///Oo='),(7,15,'2011-03-31 10:25:46','P',1,'s/clenaup/cleanup/',NULL,2984,1,'/COMMIT_MSG','AAAL33///fk='),(146,1,'2011-04-04 17:31:42','P',1,'Message should end in \\n.',NULL,2996,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java','AAAL33///Is='),(146,79,'2011-04-05 16:54:39','P',1,'Done','AAAL33///Is=',2996,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CherryPickCommandTest.java','AAAL4H////8='),(375,1,'2011-04-04 17:31:42','P',1,'Style-nit: Unnecessary introduction of a blank line.',NULL,2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AAAL33///Iw='),(375,79,'2011-04-05 16:54:39','P',1,'Done','AAAL33///Iw=',2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AAAL4H////4='),(137,1,'2011-04-04 17:31:42','P',1,'Asking for the state is expensive due to the number of file stat calls involved. Do this once before line 133 and save the result into a local variable so that all three of these references reuse the same computed value.\n\nIt may be worth using a switch statement here instead of if.',NULL,2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java','AAAL33///I0='),(137,79,'2011-04-05 16:54:39','P',1,'Switch statements are so ugly in Java, I left it.','AAAL33///I0=',2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/ResetCommand.java','AAAL4H////0='),(1238,1,'2011-04-04 17:31:42','P',1,'Style-nit: There is no good reason for this local variable \"head\".',NULL,2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL33///JA='),(1238,79,'2011-04-05 16:54:39','P',1,'Done','AAAL33///JA=',2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL4H////w='),(146,1,'2011-04-04 17:31:42','P',1,'The resulting message should end with an LF. So I think you instead want:\n\n  sb.append(\"Conflicts:\\n\");\n  for (String conflictingPath : conflictingPaths)\n    sb.append(\'\\t\').append(conflictingPath).append(\'\\n\');',NULL,2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeMessageFormatter.java','AAAL33///I4='),(135,1,'2011-04-04 17:31:42','P',1,'I don\'t like then name \"add\" here. Perhaps instead call this formatWithConflicts()?\n\nSince this is being introduced, it should also be added to MergeCommand so that conflicted merges include the Conflicts section (because I don\'t think they do today).',NULL,2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeMessageFormatter.java','AAAL33///I8='),(146,79,'2011-04-05 16:54:39','P',1,'Done','AAAL33///I4=',2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeMessageFormatter.java','AAAL4H////o='),(135,79,'2011-04-05 16:54:39','P',1,'Renamed to formatWithConflicts.\n\nI was going to add it to MergeCommand in a separate change.','AAAL33///I8=',2996,1,'org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeMessageFormatter.java','AAAL4H////s='),(1221,2,'2011-04-06 18:35:21','P',1,'similar to readMergeHeads, probably can simplify the two methods in the future...',NULL,2996,2,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL4H///5k='),(1250,2,'2011-04-06 18:35:21','P',1,'looks similar to writeMergeHEADs, we could probably combine the two methods',NULL,2996,2,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL4H///5o='),(310,1,'2011-04-03 23:55:18','P',1,'I agree with Robin, change this to\n\n  private T[] block = directory[0];',NULL,2998,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/BlockList.java','AAAL33///K8='),(310,4,'2011-04-04 00:21:15','P',1,'Done','AAAL33///K8=',2998,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/BlockList.java','AAAL33///Kk='),(310,8,'2011-04-03 23:04:13','P',1,'I did not understand that comment at first. It\'s not that findbugs do not like implicitly initialized fields, its\' only when they are used in the initializer, that it complains.\n\nI\'d rather do this: private T[] block = directory[0]; \nand drop the dirIdx = 0 change',NULL,2998,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/BlockList.java','AAAL33///Lg='),(152,4,'2011-04-04 23:49:59','P',1,'style nit: unnecessary blank line',NULL,2999,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/synchronize/AbstractSynchronizeViewTest.java','AAAL33///Hg='),(144,4,'2011-04-04 23:49:59','P',1,'commit is using DirCache since a while',NULL,2999,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/synchronize/AbstractSynchronizeViewTest.java','AAAL33///Hk='),(52,4,'2011-04-04 23:49:59','P',1,'typo in method name s/Presenentation/Presentation/',NULL,2999,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/synchronize/SynchronizeViewGitChangeSetModelTest.java','AAAL33///Hc='),(28,2,'2011-04-05 14:53:52','P',1,'whitespace',NULL,3003,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubIssue.java','AAAL33///G0='),(176,2,'2011-04-05 14:53:52','P',1,'whitespcae',NULL,3003,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubIssue.java','AAAL33///Gw='),(583,2,'2011-04-05 14:53:52','P',1,'whites space',NULL,3003,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubService.java','AAAL33///Go='),(580,2,'2011-04-05 14:53:52','P',1,'whitespace',NULL,3003,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubService.java','AAAL33///Gs='),(201,6,'2011-04-06 14:27:49','P',1,'Done','AAAL4H///7M=',3010,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL4H///6o='),(196,6,'2011-04-06 14:27:49','P',1,'Done','AAAL4H///7Y=',3010,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL4H///6w='),(201,100,'2011-04-06 14:21:37','P',1,'both or either?',NULL,3010,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL4H///7M='),(196,100,'2011-04-06 14:21:37','P',1,'duplicate if',NULL,3010,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AAAL4H///7Y='),(1234,79,'2011-04-06 20:41:49','P',1,'Done','AAAL4H///44=',3013,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL4H///28='),(1223,79,'2011-04-06 20:41:49','P',1,'Done','AAAL4H///48=',3013,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL4H///3I='),(1234,1,'2011-04-06 19:33:44','P',1,'Given how short the method is, maybe this is even shorter:\n\n File file = new File(getDirectory(), filename);\n try {\n    byte[] raw = IO.readFully(file);\n    return 0 < raw.length ? raw : null;\n  } catch (FileNotFoundException notFound) {\n    return null;\n  }\n\nOn something this tiny, it isn\'t really worth trying to hoist the if outside of the try/catch.',NULL,3013,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL4H///44='),(1223,1,'2011-04-06 19:33:44','P',1,'Our style would prefer:\n\n  List<ObjectId> heads = head != null ? Collections.singletonList(head) : null;\n\nThat also removes the need to import java.util.Arrays here.',NULL,3013,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java','AAAL4H///48='),(385,210,'2011-04-07 19:32:25','P',1,'whitespaces ...',NULL,3015,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubService.java','AAAL4H///1c='),(411,210,'2011-04-07 19:32:25','P',1,'is this documented API?\nhttp://develop.github.com/p/gist.html say nothing about creating gists (\"comming soon\" status)',NULL,3015,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubService.java','AAAL4H///1g='),(414,208,'2011-04-07 19:36:54','P',1,'Use setCredentials and Basic auth',NULL,3015,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubService.java','AAAL4H///1I='),(46,210,'2011-04-07 19:32:25','P',1,'not used',NULL,3015,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubService.java','AAAL4H///1k='),(36,210,'2011-04-07 19:32:25','P',1,'+1',NULL,3015,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GitHubService.java','AAAL4H///1Y='),(63,210,'2011-04-07 19:32:25','P',1,'-1\nbetter exception handling please ...',NULL,3015,1,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/github/ui/internal/CreateGistHandler.java','AAAL4H///1U='),(30,210,'2011-04-07 19:32:25','P',1,'whitespaces',NULL,3015,1,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/github/ui/internal/GistNotificationPopup.java','AAAL4H///1Q='),(24,4,'2011-04-07 21:21:25','d',1,'style nit: lots of whitespace errors in this class',NULL,3015,1,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/github/ui/internal/GitHubImages.java','AAAL4H///0o='),(20,4,'2011-04-07 21:22:31','d',1,'any plans for javadoc for public classes ?',NULL,3015,1,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/github/ui/internal/GitHubUi.java','AAAL4H///0k='),(9,4,'2011-04-07 21:24:11','d',0,'I would tend to use version ranges here to allow compatibility with a broader range of platform releases',NULL,3015,2,'org.eclipse.mylyn.github.core/META-INF/MANIFEST.MF','AAAL4H///0c='),(52,4,'2011-04-07 21:27:36','d',1,'this diff is a mess ...',NULL,3015,2,'org.eclipse.mylyn.github.ui/.settings/egit-github.launch','AAAL4H///z0='),(9,4,'2011-04-07 21:28:44','d',0,'I would tend to use version ranges all over the place to allow for broader usage',NULL,3015,2,'org.eclipse.mylyn.github.ui/META-INF/MANIFEST.MF','AAAL4H///zk='),(42,4,'2011-04-07 21:29:24','d',1,'texts should be externalized for translation',NULL,3015,2,'org.eclipse.mylyn.github.ui/plugin.xml','AAAL4H///zc='),(64,4,'2011-04-07 21:32:07','d',1,'style nit: trailing whitespace, more below',NULL,3015,2,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/github/ui/internal/CreateGistHandler.java','AAAL4H///zI='),(81,4,'2011-04-07 21:31:22','d',1,'style nit: inconsistent indentation',NULL,3015,2,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/github/ui/internal/CreateGistHandler.java','AAAL4H///zM='),(42,4,'2011-04-07 21:30:42','d',1,'style nit: indentation looks strange, looks like missing project settings',NULL,3015,2,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/github/ui/internal/CreateGistHandler.java','AAAL4H///zQ='),(43,4,'2011-04-07 21:33:00','d',1,'style nit: unnecessary blank line',NULL,3015,2,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/github/ui/internal/CreateGistJob.java','AAAL4H///zA='),(24,4,'2011-04-07 21:32:28','d',1,'how about javadoc ?',NULL,3015,2,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/github/ui/internal/CreateGistJob.java','AAAL4H///zE='),(10,11,'2011-04-09 08:00:13','P',1,'don\'t remove source for extra dependencies',NULL,3031,1,'org.eclipse.mylyn.github-feature/github.target','AAAL4H///wU='),(6,11,'2011-04-09 08:00:13','P',1,'don\'t remove sources for Mylyn SDK',NULL,3031,1,'org.eclipse.mylyn.github-feature/github.target','AAAL4H///wY='),(64,1,'2011-04-11 00:25:17','P',1,'Please assert the Charset is the ISO-8859-1 charset.',NULL,3044,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java','AAAL4H///rE='),(45,1,'2011-04-11 00:25:17','P',1,'Please don\'t import *, instead import the methods used',NULL,3044,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java','AAAL4H///rI='),(655,1,'2011-04-11 00:25:17','P',1,'I suspect we will need other translations here. Lets instead set up a map that we can easily add other entries into:\n\n  private static final Map<String, Charset> encodingAliases;\n\n  static {\n    encodingAliases = new HashMap<String, String>();\n    encodingAliases.put(\"latin-1\", Charset.forName(\"ISO-8859-1\"));\n  }\n\n  String decoded = decode(...);\n  try {\n    return Charset.forName(decoded);\n  } catch (IllegalCharsetNameException badName) {\n    Charset aliased = encodingAliases.get(StringUtils.toLowerCase(decoded));\n    if (aliased != null)\n      return aliased;\n    throw badName;\n  } catch (UnsupportedCharsetException badName) {\n    Charset aliased = encodingAliases.get(StringUtils.toLowerCase(decoded));\n    if (aliased != null)\n      return aliased;\n    throw badName;\n  }',NULL,3044,2,'org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java','AAAL4H///rM='),(70,1,'2011-04-11 15:08:58','P',1,'I know this is handy, but I wonder if we should catch the exception and assert the message contains \"xyz\".',NULL,3044,3,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java','AAAL4H///m0='),(669,1,'2011-04-11 15:08:58','P',1,'Given how this is line wrapping, lets pull the lookup into a private method:\n\n  private static Charset charsetForAlias(String name) {\n    return encodingAliases.get(StringUtils.toLowerCase(name));\n  }\n\nand declare that helper method right below this parseEncoding method.',NULL,3044,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java','AAAL4H///m4='),(75,1,'2011-04-11 15:08:58','P',1,'Style-nit: Combine this static block with the block that follows it.',NULL,3044,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java','AAAL4H///m8='),(74,1,'2011-04-11 15:08:58','P',1,'Style-nit: Insert a blank line after a field declaration.',NULL,3044,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java','AAAL4H///nA='),(78,1,'2011-04-11 15:08:58','P',1,'This alias should be known by the JRE, and thus shouldn\'t be necessary in our map.',NULL,3044,3,'org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java','AAAL4H///nE='),(77,1,'2011-04-11 16:50:32','P',1,'This is always true. You cannot throw the null object.',NULL,3044,5,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java','AAAL4H///mM='),(59,1,'2011-04-11 16:50:32','P',1,'Don\'t rely on the JRE platform encoding here. Use a specific encoding, like Constants.encodeASCII(). This also applies to the other getBytes calls below.',NULL,3044,5,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java','AAAL4H///mQ='),(78,1,'2011-04-11 16:50:32','P',1,'Style-nit: These two sections are distinct, there should be a blank line between initializing encodingAliases and initializing digits10.',NULL,3044,5,'org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java','AAAL4H///mY='),(76,1,'2011-04-11 16:56:29','P',1,'Style-nit: This line is missing indentation.',NULL,3044,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtilsTest.java','AAAL4H///l4='),(59,2,'2011-04-13 09:47:18','d',1,'this is a bad name for this variable',NULL,3072,1,'org.eclipse.egit.core/src/org/eclipse/egit/core/op/CloneOperation.java','AAAL4H///dA='),(200,208,'2011-04-13 04:51:38','P',1,'Put most common case in if block:\n\nissue !=null ? createIssueMap(issue) : null;',NULL,3084,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/IssueService.java','AAAL4H///dQ='),(200,208,'2011-04-13 14:59:02','P',1,'Needs a space between != and null',NULL,3084,2,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/IssueService.java','AAAL4H///cI='),(392,1,'2011-04-18 14:14:43','P',1,'Unit test?',NULL,3105,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL4H///Ko='),(79,1,'2011-04-18 14:14:43','P',1,'Please add <li>conflicted files</li>',NULL,3105,1,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL4H///Ks='),(158,1,'2011-04-19 17:09:35','P',1,'Please, just declare this throws Exception.',NULL,3105,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/IndexDiffTest.java','AAAL4H///FE='),(155,1,'2011-04-19 17:09:35','P',1,'testConflicting()',NULL,3105,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/IndexDiffTest.java','AAAL4H///FI='),(80,1,'2011-04-19 17:09:35','P',1,'I wouldn\'t say staged files here, its conflicting files.',NULL,3105,2,'org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java','AAAL4H///FM='),(27,4,'2011-04-29 19:52:27','P',1,'this CQ has been withdrawn, so we will need a new CQ for this change (we\'ll request that when we are closer to accepting the proposal)',NULL,3106,1,'/COMMIT_MSG','AAAL4H///UQ='),(21,4,'2011-04-29 19:52:27','P',1,'The changeId should go on the next line to avoid to wide line',NULL,3106,1,'/COMMIT_MSG','AABOIn///9k='),(23,4,'2011-04-29 19:52:27','P',1,'label should be externalized',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/ConflictingNode.java','AAAL4H///U4='),(23,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///U4=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/ConflictingNode.java','AABOIn///8E='),(1,4,'2011-04-29 19:52:27','P',1,'missing license header',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/OpenCommand.java','AAAL4H///VE='),(1,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///VE=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/OpenCommand.java','AABOIn///8A='),(68,4,'2011-04-29 19:52:27','P',1,'style nit: no braces here',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/ResourceNode.java','AAAL4H///U8='),(48,4,'2011-04-29 19:52:27','P',1,'style nit: we don\'t use curly braces around single line blocks',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/ResourceNode.java','AAAL4H///VA='),(68,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///U8=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/ResourceNode.java','AABOIn///7U='),(48,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///VA=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/ResourceNode.java','AABOIn///7Y='),(23,4,'2011-04-29 19:52:27','P',1,'label should be externalized',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagedNode.java','AAAL4H///U0='),(23,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///U0=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagedNode.java','AABOIn///78='),(102,4,'2011-04-29 19:52:27','P',1,'style nit: no braces, more occurrences below',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingLabelProvider.java','AAAL4H///Uw='),(102,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///Uw=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingLabelProvider.java','AABOIn///74='),(1064,4,'2011-04-29 19:52:27','P',1,'why commented out code ?',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AAAL4H///LE='),(986,4,'2011-04-29 19:52:27','P',1,'bad indentation',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AAAL4H///Uc='),(938,4,'2011-04-29 19:52:27','P',1,'what\'s the purpose of this commented out code ?',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AAAL4H///Ug='),(614,4,'2011-04-29 19:52:27','P',1,'error message should be exernalized',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AAAL4H///Uk='),(173,4,'2011-04-29 19:52:27','P',1,'style nit: no braces around single line blocks, more below',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AAAL4H///Uo='),(1005,4,'2011-04-29 19:52:27','P',1,'I think we should be able to also handle files outside the workspace, we got many complaints about this blind spot in the existing commit dialog. Support for this could also be added in a later commit.',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AAAL4H///UU='),(983,4,'2011-04-29 19:52:27','P',1,'can we find a better name for this method ?',NULL,3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AAAL4H///UY='),(1005,214,'2011-04-30 10:44:04','P',1,'Definitely need support for non workspace files.  The current code uses IFile to track the nodes,','AAAL4H///UU=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///70='),(986,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///Uc=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///7c='),(983,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///UY=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///7g='),(1064,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///LE=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///7k='),(938,214,'2011-04-30 10:44:04','P',1,'Thats from Remy\'s original implementation which used a different API from IndexDiff.  Don\'t think its required anymore so I\'ve removed it now.','AAAL4H///Ug=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///7o='),(614,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///Uk=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///7s='),(173,214,'2011-04-30 10:44:04','P',1,'Done','AAAL4H///Uo=',3106,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///7w='),(23,4,'2011-05-03 23:13:47','P',1,'we should remove GitX from these class names as we just borrow the ui layout idea but don\'t depend on their implementation',NULL,3106,5,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/GitXStagedNode.java','AABOIn///r0='),(23,4,'2011-05-04 15:46:41','P',1,'maybe better \"StagedEntry\" ? \"Node\" sounds like tree-ish to me (though I am not a native English speaker).',NULL,3106,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagedNode.java','AABOIn///nw='),(346,214,'2011-05-05 03:54:53','P',1,'What is correct here?  Sorry this is my first attempt with an eclipse plugin.','AABOIn///n4=',3106,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///lE='),(354,4,'2011-05-04 15:46:41','P',1,'yes',NULL,3106,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///n0='),(346,4,'2011-05-04 15:46:41','P',1,'do we need proper exception handling here ?',NULL,3106,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///n4='),(132,4,'2011-05-04 15:46:41','P',1,'I don\'t like these type prefixes, modern IDEs easily show the type without polluting the source code. Also don\'t use underscores in variable names. Instead we prefer readable names (or very short names for variables only used locally within the next few lines).',NULL,3106,6,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///n8='),(353,44,'2011-05-18 13:26:44','P',1,'yes, should be moved to a Job. An example can be found in GitHistoryPage.scheduleNewGenerateHistoryJob.',NULL,3106,10,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOI3///Rc='),(109,44,'2011-05-18 13:26:44','P',1,'Why to reload if event.getRepository differs from currentRepository?',NULL,3106,10,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOI3///Rg='),(103,44,'2011-05-18 13:26:44','P',1,'Why to reload if event.getRepository differs from currentRepository?',NULL,3106,10,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOI3///Rk='),(284,44,'2011-05-18 13:26:44','P',1,'Only reload if repository changed.',NULL,3106,10,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOI3///RU='),(356,44,'2011-05-18 13:26:44','P',1,'Only reload if repository changed.',NULL,3106,10,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOI3///RY='),(35,4,'2011-04-23 00:07:16','P',1,'we do not use author tags',NULL,3141,4,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/RepositoryCommitTest.java','AAAL4n///7A='),(34,4,'2011-04-23 00:07:16','P',1,'style nit: trailing whitespace',NULL,3141,4,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/RepositoryCommitTest.java','AAAL4n///7E='),(38,4,'2011-04-23 00:07:16','P',1,'why 7 ? In history view we use 8',NULL,3141,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/RepositoryCommit.java','AAAL4n///64='),(31,4,'2011-04-23 00:07:16','P',1,'we do not use author tags',NULL,3141,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/RepositoryCommit.java','AAAL4n///68='),(147,4,'2011-04-18 15:42:19','P',1,'Done','AAAL4H///K8=',3147,1,'org.eclipse.jgit/pom.xml','AAAL4H///J8='),(147,1,'2011-04-18 14:08:53','P',1,'Style-nit: Use spaces for indent.',NULL,3147,1,'org.eclipse.jgit/pom.xml','AAAL4H///K8='),(236,4,'2011-04-18 15:42:19','P',1,'Done','AAAL4H///LA=',3147,1,'pom.xml','AAAL4H///J4='),(236,1,'2011-04-18 14:08:53','P',1,'Style-nit: Use spaces for indent.',NULL,3147,1,'pom.xml','AAAL4H///LA='),(34,4,'2011-04-23 00:22:18','P',1,'style nits: trailing whitespace, do not use author tags',NULL,3148,2,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/DiffStyleRangeFormatterTest.java','AAAL4n///6A='),(34,4,'2011-04-23 00:22:18','P',1,'style nit: we don\'t use author tags',NULL,3148,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffStyleRangeFormatter.java','AAAL4n///6E='),(47,4,'2011-04-23 00:26:01','P',1,'avoid using author tags',NULL,3149,4,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffViewer.java','AAAL4n///5w='),(9,4,'2011-04-19 07:01:40','P',1,'typo: s/with with/with/',NULL,3160,1,'/COMMIT_MSG','AAAL4H///Hk='),(7,103,'2011-04-19 21:15:48','P',1,'At http://wiki.eclipse.org/EGit/Contributor_Guide#Commit_message_guidelines you can find the EGit guidelines for a proper commit message',NULL,3161,1,'/COMMIT_MSG','AAAL4H///DQ='),(114,4,'2011-04-19 23:51:44','P',1,'why did you touch formatting here ?',NULL,3161,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectWizardPage.java','AAAL4H//+/o='),(896,4,'2011-04-19 23:51:44','P',1,'don\'t use string concatenation to build sentence as grammar could be different in other languages, instead use NLS.bind()\n\nthis is a rather unspecific error message, why don\'t you want to disclose that having no work tree is the problem',NULL,3161,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL4H//+/k='),(33,4,'2011-04-23 00:13:10','P',1,'style nit: trailing whitespace',NULL,3165,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/CommitEditorInputTest.java','AAAL4n///60='),(34,4,'2011-04-23 00:13:10','P',1,'we don\'t use author tags',NULL,3165,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/CommitEditorInputTest.java','AAAL4n///6w='),(29,4,'2011-04-23 00:13:10','P',1,'we don\'t use author tags',NULL,3165,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitEditorInput.java','AAAL4n///6o='),(31,4,'2011-04-23 00:13:10','P',1,'according to javadoc of IEditorInput this class should override equals:\n\n\"Clients implementing this editor input interface should override Object.equals(Object) to answer true for two inputs that are the same. The IWorbenchPage.openEditor APIs are dependent on this to find an editor with the same input.\"',NULL,3165,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitEditorInput.java','AAAL4n///6s='),(36,4,'2011-04-23 00:15:22','P',1,'style nits: trailing whitespace and we don\'t use author tags',NULL,3168,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/commit/CommitEditorInputFactoryTest.java','AAAL4n///6k='),(29,4,'2011-04-23 00:15:22','P',1,'style nit: we don\'t use author tags',NULL,3168,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitEditorInputFactory.java','AAAL4n///6g='),(49,4,'2011-04-23 00:33:59','P',1,'we don\'t use author tags',NULL,3187,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorPage.java','AAAL4n///5c='),(319,4,'2011-04-20 23:16:17','P',1,'trailing whitespace',NULL,3190,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/team/actions/BranchAndResetActionTest.java','AAAL4H//+60='),(319,4,'2011-04-20 23:21:17','P',1,'Done','AAAL4H//+60=',3190,1,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/team/actions/BranchAndResetActionTest.java','AAAL4H//+6Y='),(2484,4,'2011-04-20 23:25:54','P',1,'Done','AAAL4H//+6A=',3191,2,'org.eclipse.egit.ui/plugin.xml','AAAL4H//+5w='),(2484,4,'2011-04-20 23:23:35','P',1,'trailing whitespace',NULL,3191,2,'org.eclipse.egit.ui/plugin.xml','AAAL4H//+6A='),(1196,6,'2011-04-21 08:14:34','P',1,'Switch to... > Create Branch... does not sound good. I would stick to Switch to... > New Branch...',NULL,3192,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AAAL4H//+3o='),(7,4,'2011-04-21 07:50:57','P',1,'style nit: don\'t put the bug id in the commit message header, instead add a bug footer and also add Gerrit change-id',NULL,3193,1,'/COMMIT_MSG','AAAL4H//+34='),(2,4,'2011-04-21 07:50:57','P',1,'you shouldn\'t attribute that to Shawn\'s copyright here, instead use your own copyright statement on another line',NULL,3193,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL4H//+30='),(300,4,'2011-04-21 07:50:57','P',1,'style nit: we don\'t use curly braces around single line blocks',NULL,3193,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL4H//+3w='),(277,1,'2011-04-21 18:01:43','P',1,'Style-nit: There is no reason to hoist this outside of the try block. Please leave it initialized by the Runtime.getRuntime().exec() invocation.',NULL,3193,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL4X////0='),(272,1,'2011-04-21 18:01:43','P',1,'We actually already have most of this code:\n\n  InterruptTimer timer = new InterruptTimer(\"FS.readPipe\");\n  try {\n    TimeoutInputStream in = new TimeoutInputStream(p.getInputStream(), timer);\n    in.setTimeout(10000);\n    BufferedReader lineRead = new BufferedReader(in, encoding));\n    ...\n  } finally {\n    timer.terminate();\n  }\n\nIf a timeout triggers, lineRead.readLine() will throw InterruptedIOException.',NULL,3193,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL4X////o='),(307,1,'2011-04-21 18:01:43','P',1,'A read exception should be considered before looking at the result string.',NULL,3193,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL4X////w='),(2,219,'2011-04-22 00:13:21','d',1,'Since it already includes the term \"and other copyright owners\", I thought it simply needed an update for the current year with the intended changes.','AAAL4H//+30=',3193,1,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AAAL4X///7A='),(7,4,'2011-04-21 07:42:08','P',1,'style nit: don\'t put the bug id in the commit message header instead add a bug footer, Gerrit will then render a proper hyperlink. Also include a Gerrit change-id using the commit message hook (see contributor guide how to install that) or EGit\n\nso this should look like:\n\n Pasting remote git ...\n\n Bug: 343309\n Change-Id: Ideadbeaf...',NULL,3194,1,'/COMMIT_MSG','AAAL4H//+4E='),(40,4,'2011-04-21 07:42:08','P',1,'URIRISH looks strange, maybe better URIISH ?',NULL,3194,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/PasteCommand.java','AAAL4H//+4A='),(57,4,'2011-04-21 07:42:08','P',1,'we don\'t need this comment, the commit\'s diff has the same information and doesn\'t clutter this class',NULL,3194,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/PasteCommand.java','AAAL4H//+4I='),(58,4,'2011-04-21 07:42:08','P',1,'style nit: we don\'t use braces around single line blocks',NULL,3194,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/PasteCommand.java','AAAL4H//+4M='),(2,4,'2011-04-21 07:42:08','P',1,'you can\'t add a copyright for SAP, instead add a new line with your company\'s copyright',NULL,3194,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/PasteCommand.java','AAAL4H//+4Q='),(491,44,'2011-05-04 07:39:41','d',1,'Shouldn\'t it look like this: \"file:///C\\\\a\\\\b\\\\c.git/\"',NULL,3198,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java','AABOIn///q8='),(555,6,'2011-05-05 07:05:08','P',1,'But the only thing we are interested in is the repository name. It should have no \"\\\" inside, because that would not work under windows. Therefore it does not matter if we split the String to often in case there is a \"\\\" in a UNIX folder name.','AABOIn///pY=',3198,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java','AABOIn///k8='),(555,44,'2011-05-04 13:52:31','P',1,'Should we check for Windows platform before replacing \"\\\" with \"/\"? \"\\\" can be part of file and folder names on UNIX.',NULL,3198,2,'org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java','AABOIn///pY='),(491,1,'2011-05-05 17:41:26','P',1,'No. This is now a platform specific test. On Mac OS X and Linux we cannot test that this works correctly for Windows paths.\n\nPlease use \\\\ literally in the test string.',NULL,3198,4,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java','AABOIn///gk='),(491,6,'2011-05-06 07:43:26','d',1,'Done','AABOIn///gk=',3198,4,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java','AABOIn///ZU='),(558,1,'2011-05-05 17:41:26','P',1,'Use separatorChar?',NULL,3198,4,'org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java','AABOIn///go='),(559,1,'2011-05-05 17:41:26','P',1,'Style-nit: Unnecessary braces',NULL,3198,4,'org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java','AABOIn///gs='),(558,6,'2011-05-06 07:43:17','d',1,'Done','AABOIn///go=',3198,4,'org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java','AABOIn///Zc='),(559,6,'2011-05-06 07:43:19','d',1,'Done','AABOIn///gs=',3198,4,'org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java','AABOIn///ZY='),(491,8,'2011-05-08 17:16:50','P',1,'You could also treat \\ as a separator on all platforms. We do that in the rest of this class. Then let someone (else) \"fix\" whole class (that will be messy...). \n\n[Deity of your choice] forbid anyone thinks \\ is a good character in a name of anything on Linux.','AABOIn///V0=',3198,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java','AABOIn///RE='),(491,1,'2011-05-06 15:07:01','P',1,'Hmm. The test would fail on Mac OS X or Linux because the separatorChar there is \'/\' and it wouldn\'t split correctly on \'\\\'.\n\nMy point is, the larger the test coverage is on all platforms, the less likely we are to see a regression in any particular platform specific section. For that matter, the less platform specific sections of code we have, the better.\n\nI would prefer being able to also run this test on Mac OS X or Linux and have it correctly test the \\ splitting behavior. That means moving the selection of File.separatorChar inside getHumanishName() over to our SystemReader class, and using the MockSystemReader to set it to \'\\\' specifically in this test function. That is perhaps too ugly for something this simple.','AABOIn///XE=',3198,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java','AABOIn///V0='),(491,6,'2011-05-06 14:46:58','P',1,'But why should a path like file:///C\\a\\b\\c.git/ occur on Linux or Mac OS\nX? I thought that this test is only relevant on Windows, and the\nmethod getHumanishName() needs not to take into accout \\ on Linux\nor Mac OS X. \n\nFor the method getHumanishName() there are many other tests\nrunning on all platforms.','AABOIn///YY=',3198,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java','AABOIn///XE='),(491,1,'2011-05-06 14:03:19','P',1,'No. This test will pass on Linux or Mac OS X even if getHumanishName() has been broken.\n\nRemove the conditional and always check the function.',NULL,3198,6,'org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/URIishTest.java','AABOIn///YY='),(136,100,'2011-04-21 13:59:34','P',1,'Maybe \"... certificate/ key in...\" would be better...',NULL,3199,1,'org.eclipse.jgit/resources/org/eclipse/jgit/JGitText.properties','AAAL4H//+10='),(136,5,'2011-04-26 07:25:43','d',1,'Done','AAAL4H//+10=',3199,1,'org.eclipse.jgit/resources/org/eclipse/jgit/JGitText.properties','AAAL4n///u8='),(293,100,'2011-04-21 13:59:34','P',1,'We could add \"/ private key\" to this comment as well.',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/CredentialItem.java','AAAL4H//+1w='),(293,5,'2011-04-26 07:30:49','d',1,'Done','AAAL4H//+1w=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/CredentialItem.java','AAAL4n///u4='),(560,1,'2011-04-21 18:27:41','P',1,'Style-nit: Please preserve the original chain of exceptions:\n\n  IOException ioe = new IOException(e.getMessage());\n  ioe.initCause(e);\n  throw ioe;',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL4X////A='),(549,1,'2011-04-21 18:27:41','P',1,'Style-nit: We prefer the idiom:\n\n  FileInputStream fis = new FileInputStream(path);\n  try {\n  } finally {\n    fis.close();\n  }',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL4X////E='),(539,1,'2011-04-21 18:27:41','P',1,'It may be true that you want to trust all hosts inside your company, but I don\'t think this is a sane default. :-)\n\nI think C Git just ties this in with sslVerify. If sslVerify is false, then hostname verification isn\'t performed either. If sslVerify is true, then both certificate and hostname verification is done.',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL4X////I='),(514,1,'2011-04-21 18:27:41','P',1,'What is this TODO here?',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL4X////M='),(502,1,'2011-04-21 18:27:41','P',1,'Why are we getting the CertPassword if http.sslKey is null (because the user isn\'t using client certificates)?\n\nAlso, C Git suggests the user set http.sslCertPasswordProtected if their key is encrypted with a password. If its not set, C Git doesn\'t prompt until later when the key is required and a password is needed. Is there some way we can tell if the key is encrypted and avoid prompting if this variable is unset and the key is not stored encrypted?',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL4X////Q='),(593,1,'2011-04-21 18:27:41','P',1,'Style-nit: See above about keeping the exception chain.',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL4X///+4='),(575,1,'2011-04-21 18:27:41','P',1,'Style-nit: See above about file handling.',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL4X///+8='),(244,1,'2011-04-21 18:27:41','P',1,'Should we also consider support for sslCAPath?',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL4X///+k='),(245,1,'2011-04-21 18:27:41','P',1,'Stupid question: Do we need http.sslCert?',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AAAL4X///+Y='),(514,5,'2011-04-28 07:22:13','d',1,'that is about hostnameverification. By specifying \"true\" we are telling we don\'t want hostnameverifcation and trust all hostnames. As discussed already I\'ll change that \"true\" to \"!http.sslVerify\".\n\nProblem: this causes one problem when writing tests. We want tests with sslVerify set to true. Up to know we used in our unit tests a static server certificate for a not existing hostname which lead to failing unit tests if hostnameverification is on. I\'ll change the tests to use a server certificate for \"localhost\" and make sure the tests try to reach \"localhost\".','AAAL4X////M=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AABOIX///9c='),(245,5,'2011-05-26 07:43:45','d',1,'In the current implementation we don\'t need that. We allow that sslKey points to a file containing public cert AND private key. Similar to what is described in \"-E\" option of http://curl.haxx.se/docs/manpage.html. Sadly this file has to be in PKCS#12 format and not in PEM supported by native git. I don\'t know how to read this PEM files in Java.','AAAL4X///+Y=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AABOIX///9g='),(244,5,'2011-05-09 23:40:22','d',1,'yes, I\'ll add that. For now I will try to load all files I find directly underneath the sslCAPath directory. No filtering like \"only load files which names end on .p12, .der, ...) is done.','AAAL4X///+k=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AABOIX///9k='),(539,5,'2011-04-28 09:04:47','d',1,'Right, I\'ll do the same. I\'ll tie real hostname verification to the setting of sslVerify. But I\'ll do that by changing the caller of configureSsl() to specify a proper value for trustAllHosts.','AAAL4X////I=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AABOIX///9Y='),(593,5,'2011-04-28 09:05:00','d',1,'Done','AAAL4X///+4=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AABOIX///xg='),(575,5,'2011-04-28 07:25:26','d',1,'Done','AAAL4X///+8=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AABOIX///y0='),(549,5,'2011-04-28 07:22:56','d',1,'Done','AAAL4X////E=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AABOIX///y8='),(560,5,'2011-04-28 07:25:33','d',1,'Done','AAAL4X////A=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AABOIX///yw='),(502,5,'2011-04-28 09:01:50','d',1,'First of all: you are right, we should not try to get the password if http.sslKey is not set. I\'ll move the code into the if clause.\n\nRegarding the second part I am not so sure whether we should adopt C Git behaviour. If I understood that correctly C Git will rely on OpenSSL to prompt the user if sslCertPasswordProtected is not set. If it is set C Git on his own may prompt in advance. But in our case we don\'t have a underlying layer which may prompt. If JGit doesn\'t trigger the prompt nobody will do, or? So if we would set sslCertPasswordProtected to false we\'ll fail if a password is required (in contrast to what would happen with CGit).','AAAL4X////Q=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportHttp.java','AABOIX///zc='),(96,100,'2011-04-21 13:59:34','P',1,'Comment does not match list of parameters.',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java','AAAL4H//+14='),(53,100,'2011-04-21 13:59:34','P',0,'Would it make sense to have a separate CertCredentialsProvider?',NULL,3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java','AAAL4H//+1s='),(96,5,'2011-04-28 07:28:27','d',1,'Done','AAAL4H//+14=',3199,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/UsernamePasswordCredentialsProvider.java','AABOIX///yg='),(67,1,'2011-04-21 18:36:11','P',1,'Please add a note about X.509 certificates being accepted too.',NULL,3200,1,'org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/resolver/DefaultReceivePackFactory.java','AAAL4X///+Q='),(420,100,'2011-04-21 15:57:29','P',1,'See above. We should use \"sslKeyPassword\" here.',NULL,3200,1,'org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java','AAAL4H//+0o='),(396,100,'2011-04-21 15:57:29','P',1,'The password is stored in static attribute \"sslKeyPassword\", so we do not need to hard-code it here.',NULL,3200,1,'org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java','AAAL4H//+0s='),(416,100,'2011-04-21 15:57:29','P',1,'This property is not required anymore.',NULL,3200,1,'org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java','AAAL4H//+0w='),(159,1,'2011-04-21 18:36:11','P',1,'You shouldn\'t hard-code the port, but instead let it be assigned by the OS and pick up the port after-the-fact like we do with the non-SSL connection.',NULL,3200,1,'org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/AppServer.java','AAAL4X///+E='),(1,100,'2011-04-21 15:57:29','P',1,'The license header is missing. I know - it\'s my fault...',NULL,3200,1,'org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/KeyStoreHelper.java','AAAL4H//+0k='),(9,1,'2011-04-21 18:36:11','P',1,'Why aren\'t these huge base64 thinks resource files in the test suite? Then they can be loaded as files from the source directory, rather than writing them out to temporary files during the test and needing to delete them after.',NULL,3200,1,'org.eclipse.jgit.junit.http/src/org/eclipse/jgit/junit/http/KeyStoreHelper.java','AAAL4X///+A='),(86,1,'2011-04-21 18:36:11','P',1,'Why isn\'t this change combined into the prior commit that handles the client side changes?',NULL,3200,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/HttpAuthMethod.java','AAAL4X///+I='),(387,1,'2011-04-21 18:36:11','P',1,'What is left TODO here?',NULL,3200,1,'org.eclipse.jgit/src/org/eclipse/jgit/transport/HttpAuthMethod.java','AAAL4X///+M='),(8,4,'2011-04-21 23:04:31','P',1,'style nit: separate the commit message header from the body using a blank line.\n\nYou shouldn\'t explain the history of how this change came to birth here, if you want to record that put it in a Gerrit comment. Instead describe what was changed and why',NULL,3205,2,'/COMMIT_MSG','AAAL4X///8Y='),(64,4,'2011-04-21 23:04:31','P',1,'style nit: trailing whitespace, more below',NULL,3205,2,'org.eclipse.egit.relengtools/src/org/eclipse/egit/internal/relengtools/MapFileCompareEditorInput.java','AAAL4X///8U='),(52,4,'2011-04-21 23:04:31','P',1,'exception should be handled properly',NULL,3205,2,'org.eclipse.egit.relengtools/src/org/eclipse/egit/internal/relengtools/MapFileComparePage.java','AAAL4X///8M='),(38,4,'2011-04-21 23:04:31','P',1,'style nit: trailing whitespace, also in next method',NULL,3205,2,'org.eclipse.egit.relengtools/src/org/eclipse/egit/internal/relengtools/MapFileComparePage.java','AAAL4X///8Q='),(226,4,'2011-04-21 23:04:31','P',1,'can we remove this dead code ?',NULL,3205,2,'org.eclipse.egit.relengtools/src/org/eclipse/egit/internal/relengtools/ReleaseWizard.java','AAAL4X///8I='),(6,4,'2011-04-22 23:16:57','P',1,'The commit message should always have a header explaining what this change is all about, e.g.:\n\n [repoView] Enable pasting remote git URLs\n\n Bug: 343309\n Change-Id: I77223331569cdb4f50e9a226cdc1faa286247c98\n Signed-off-by: Nitin Dahyabhai <nitind@us.ibm.com>',NULL,3217,1,'/COMMIT_MSG','AAAL4n///7M='),(184,1,'2011-04-22 22:34:49','P',1,'Style-nit: We don\'t put these @see javadoc tags in, but we do put @Override on the method.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/Line.java','AAAL4n///8k='),(20,1,'2011-04-22 22:34:49','P',1,'Please don\'t store the line content as a String. It uses up a ton of memory. Applications only need the range, they can trade the range for the string data when using a RawText object for the file.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/Line.java','AAAL4n///8o='),(16,1,'2011-04-22 22:34:49','P',1,'Style-nit: We don\'t put @author tags in our Javadoc.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/Line.java','AAAL4n///8s='),(6,1,'2011-04-22 22:34:49','P',1,'JGit uses the 3-clause BSD, aka the EDL. Not the EPL.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/Line.java','AAAL4n///8w='),(33,1,'2011-04-22 22:34:49','P',1,'Aside from storing the ObjectId, we should have the path of this file. If a file gets renamed and we do move/copy detection we want to know where these lines are coming from.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/Revision.java','AAAL4n///8c='),(212,1,'2011-04-22 22:34:49','P',1,'Please don\'t use or rely on platform encoding.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/Revision.java','AAAL4n///8U='),(208,1,'2011-04-22 22:34:49','P',1,'What do we need this for?',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/Revision.java','AAAL4n///8Y='),(103,1,'2011-04-22 22:34:49','P',1,'Style-nit: We prefer:\n\n  BufferedReader reader = new BufferedReader(...);\n  try {\n  } finally {\n    reader.close();\n  }\n\nThat way there isn\'t a risk of reader staying initialized to null if something is wrong with the code.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///70='),(105,1,'2011-04-22 22:34:49','P',1,'You can\'t assume platform encoding.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///74='),(90,1,'2011-04-22 22:34:49','P',1,'You should hang onto an ObjectReader in this class, and make the caller release() you so you can release() your ObjectReader. Then that same ObjectReader can be used for all data access with TreeWalk or RevWalk instances.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///78='),(164,1,'2011-04-22 22:34:49','P',1,'Because you have the FollowFilter enabled, the path can change on you during each commit walked. You need to be storing that path in each Revision.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///7c='),(130,1,'2011-04-22 22:34:49','P',1,'The RawTextComparator should be configurable, so users can run blame but ignore whitespace differences.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///7g='),(127,1,'2011-04-22 22:34:49','P',1,'If you had just used RawText earlier, you wouldn\'t need to do this conversion.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///7o='),(129,1,'2011-04-22 22:34:49','P',1,'The DiffAlgorithm should be configurable, but default to HistogramDiff.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///7s='),(184,1,'2011-04-22 22:34:49','P',1,'This can take a long time. As can the rest of the algorithm. Its better if you can make this incremental, so callers can ask you for some data, display it, then ask for more.\n\nTo see what I mean, run `git gui blame` and watch it fill in for a file. We want to be able to do the same thing in EGit, or other applications that are using blame. Sometimes users are happy to get recent row range results quickly, and they don\'t even need to wait for the whole file to finish.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///7U='),(107,1,'2011-04-22 22:34:49','P',1,'Use RawText instead.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///7w='),(161,1,'2011-04-22 22:34:49','P',1,'Users should be able to configure which revision you start digging from.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///7Y='),(85,1,'2011-04-22 22:34:49','P',1,'Path needs to be coming from Revision, because it should be able to change over time due to rename/copy detection.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///8E='),(47,1,'2011-04-22 22:34:49','P',1,'Style-nit: We don\'t initialize to defaults, we rely on implicit initialization for fields.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///8I='),(11,1,'2011-04-22 22:34:49','P',1,'FWIW, this is called \"blame\" in Git. We should call it blame in JGit too.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///8M='),(62,1,'2011-04-22 22:34:49','P',1,'This construct is unnecessary, please remove it.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionBuilder.java','AAAL4n///8Q='),(125,1,'2011-04-22 22:34:49','P',1,'Is a Set<Line> really necessary here? An ArrayList<Line> that is sorted in-place would be much smaller.',NULL,3222,3,'org.eclipse.jgit/src/org/eclipse/jgit/lines/RevisionContainer.java','AAAL4n///8g='),(121,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///2k=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/api/LineHistoryCommand.java','AABOIn///TE='),(121,8,'2011-04-27 21:40:21','P',1,'Drop overriding javadoc',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/api/LineHistoryCommand.java','AABOIX///2k='),(189,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///4E=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOIn///S0='),(193,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///3Q=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOIn///S4='),(186,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///3U=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOIn///S8='),(180,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///4I=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOIn///TA='),(193,8,'2011-04-27 21:40:21','P',1,'Drop overriding javadoc',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOIX///3Q='),(186,8,'2011-04-27 21:40:21','P',1,'Drop overriding javadoc',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOIX///3U='),(146,8,'2011-04-27 21:40:21','P',1,'The dominating convention in Java is that a range includes the start index, but not the end index. Is there a good reason not do it like this here?',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOIX///4A='),(189,8,'2011-04-27 21:40:21','P',1,'This is quite slow since toString does a lot of work. It\'s much faster to combine the hashes of the components directly.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOIX///4E='),(180,8,'2011-04-27 21:40:21','P',1,'Don\'t use javadoc this way. Drop the comment\ncompletely and let Eclipse/Javadoc pick up the inherited comment directly. Applies here and all other places where methods are overridden or implemented.\nAdd an @Override where superclass methods are ovverridden.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOIX///4I='),(226,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///2o=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIn///Sg='),(83,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///3I=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIn///Sk='),(86,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///3M=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIn///So='),(90,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///3E=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIn///Ss='),(103,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///3A=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIn///Sw='),(247,8,'2011-04-27 21:40:21','P',1,'We should have a way to pass the encoding here',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIX///20='),(226,8,'2011-04-27 21:40:21','P',1,'Drop overriding javadoc',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIX///2o='),(103,8,'2011-04-27 21:40:21','P',1,'Drop overriding javadoc',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIX///3A='),(90,8,'2011-04-27 21:40:21','P',1,'Drop overriding javadoc',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIX///3E='),(83,8,'2011-04-27 21:40:21','P',1,'Drop overriding javadoc',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIX///3I='),(86,8,'2011-04-27 21:40:21','P',1,'Very slow way of computing a hash code, but perhaps less important than for Line since we have fewer',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOIX///3M='),(83,208,'2011-05-07 16:51:33','P',1,'Done','AABOIn///YI=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///Sc='),(217,208,'2011-05-07 16:51:33','P',1,'Done','AABOIn///YA=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///SU='),(85,208,'2011-05-07 16:51:33','P',1,'Done','AABOIn///YE=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///SY='),(198,208,'2011-05-06 16:33:12','P',1,'How exactly do I get the new path? It looks like the PathFilter in FollowFilter is final and the path in PathFilter is final so where does it get updated?\n\nIt looks like RewriteTreeFilter creates a new FollowFilter but how can I access it to get the new path?','AABOIn///X0=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///Us='),(198,1,'2011-05-06 14:18:52','P',1,'You don\'t need to do this. FollowFilter will always have the current path stored within it. Use getPath() to obtain the path it will use on the next commit.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///X0='),(184,1,'2011-05-06 14:18:52','P',1,'I hate this idea. We have to dig back to the very first version of a file in order to display *any* of its blame data. If the project is big enough, this can take several minutes just to compute buildRevisions(). Forget any of the other work you need to do.\n\nThat\'s why I wanted to do this incrementally.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///X4='),(175,1,'2011-05-06 14:18:52','P',1,'This is still horrifically inadequate compared to what the C implementation of blame can do.\n\nBut its better than nothing.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///X8='),(144,1,'2011-05-06 14:18:52','P',1,'This is really expensive to do in Java. Creating an object for each Line, for each revision of that Line?\n\nThere is no way this will scale to blame a 100,000 line source file. But you need to make the code support that use case in Java.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///Xo='),(141,1,'2011-05-06 14:18:52','P',1,'This crashes with ObjectTooLargeException if the object is more than the streaming threshold.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///Xs='),(207,1,'2011-05-06 14:18:52','P',1,'So at this point, we have a LinkedList of commits from oldest->newest? Which means you are digging through the blame data from the original file up to the current version.\n\nWhich ignores my point I made earlier. Most users of `git blame` are using it to look at recent history and don\'t need data going back to the root. Starting from the root and working forwards to HEAD means the user has to wait for you to compute a bunch of stuff they don\'t need right now.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///Xw='),(217,1,'2011-05-06 14:18:52','P',1,'I would prefer to set these defaults in the constructor.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///YA='),(85,1,'2011-05-06 14:18:52','P',1,'This should default to the default version.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///YE='),(83,1,'2011-05-06 14:18:52','P',1,'This should default to HistogramDiff.',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOIn///YI='),(144,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///2g=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionContainer.java','AABOIn///SM='),(94,208,'2011-05-07 16:51:33','P',1,'Done','AABOIX///2c=',3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionContainer.java','AABOIn///SQ='),(94,8,'2011-04-27 21:40:21','P',1,'Is there a good reason for abandoning the java convention of 0-based indices and having ranges that include the start index, but not the end index?',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionContainer.java','AABOIX///2c='),(144,8,'2011-04-27 21:40:21','P',1,'Drop overriding javadoc',NULL,3222,8,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionContainer.java','AABOIX///2g='),(92,208,'2011-05-15 04:13:30','P',1,'Done','AABOI3///vM=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOI3///k8='),(92,208,'2011-05-14 00:49:51','P',1,'So would you be okay storing the initial revision number and the age of the line instead? Similar to the LineRange and StyleRange classes.','AABOI3///wQ=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOI3///vg='),(92,8,'2011-05-14 10:31:40','P',1,'Both start/end and start/length are common pattern and when you mix them accidentally, people usually find out quickly, that means changing more code, so I don\'t understand why you want to to that. It also means slightly more complicated code for the user. \n\nThe [start...end[  pattern leads to the simplest client code.','AABOI3///vg=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOI3///vM='),(92,8,'2011-05-13 23:11:55','P',1,'I think  we will see fewer bugs in callers if the range works like other java ranges, i.e. the upper limit is NOT included in the range.',NULL,3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOI3///wQ='),(68,208,'2011-05-15 04:13:30','P',1,'Done','AABOI3///wM=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/LineComparator.java','AABOI3///k0='),(71,208,'2011-05-15 04:13:30','P',1,'Done','AABOI3///wc=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/LineComparator.java','AABOI3///k4='),(59,208,'2011-05-15 04:13:30','P',1,'I removed this class since it needs more discussion and is not required for initial blame support and so it should be moved into another changeset.','AABOI3///vA=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/LineComparator.java','AABOI3///ko='),(59,8,'2011-05-14 10:31:40','P',1,'That still does not match what I think it does and what I expect it to do. A few more test cases would possibly clear things up.','AABOI3///vY=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/LineComparator.java','AABOI3///vA='),(59,208,'2011-05-14 00:53:27','P',1,'This method return every line in all specified revisions sorted by line number and initial revision it appeared in.','AABOI3///wg=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/LineComparator.java','AABOI3///vY='),(71,8,'2011-05-13 23:11:55','P',1,'Don\'t override javadocs this way',NULL,3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/LineComparator.java','AABOI3///wc='),(59,8,'2011-05-13 23:11:55','P',1,'\"containing every line from every revision\"\n\nOnly the lines visible in the last revision are returned.',NULL,3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/LineComparator.java','AABOI3///wg='),(68,8,'2011-05-13 23:11:55','P',1,'Using TreeSet may not be the fastest way, but if it\ndrowns in the rest of the code that may not matter much.\n\nUsing another implementation in the future, if we think performance is a a problem may make the use of Set inconvenient, so perhaps a Collection would be less implementation dependent, providing a stable interface.\n\nThe Set interface does not quarantee ordering anyway, and the uniqueness does not be that explicit.',NULL,3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/LineComparator.java','AABOI3///wM='),(219,208,'2011-05-15 04:13:30','P',1,'Done','AABOI3///wU=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOI3///ks='),(85,208,'2011-05-15 04:13:30','P',1,'Done','AABOI3///wY=',3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOI3///kw='),(219,8,'2011-05-13 23:11:55','P',1,'We should be able to use a non-default encoding here.',NULL,3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOI3///wU='),(85,8,'2011-05-13 23:11:55','P',1,'Equals and hashCode don\'t match. this cannot work',NULL,3222,15,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOI3///wY='),(83,8,'2011-05-15 20:03:00','P',1,'Drop these extra white saces (all comments)',NULL,3222,17,'org.eclipse.jgit/src/org/eclipse/jgit/api/LineHistoryCommand.java','AABOI3///h4='),(83,208,'2011-05-15 21:11:29','P',1,'Done','AABOI3///h4=',3222,17,'org.eclipse.jgit/src/org/eclipse/jgit/api/LineHistoryCommand.java','AABOI3///ho='),(135,8,'2011-05-15 20:03:00','P',1,'nit-pick: startCommit.hashCode can just be xored/added in since it is well distributed',NULL,3222,17,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOI3///h8='),(135,208,'2011-05-15 21:11:29','P',1,'Done','AABOI3///h8=',3222,17,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOI3///hk='),(269,208,'2011-05-15 21:30:21','P',1,'Would rename detection across merge commits just be computed by running a DiffEntry scan between the commit tree and each parent tree looking for any rename change type?','AABOI3///iA=',3222,17,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOI3///gw='),(269,8,'2011-05-15 20:03:00','P',1,'Do we only want to do rename detection for non-merge commits?',NULL,3222,17,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOI3///iA='),(92,1,'2011-05-25 18:05:51','P',1,'This generates a lot of garbage, and I\'m not sure every consumer of blame wants it.\n\nI would prefer to push this to the application. If they want to track all of the line data from every revision, they should somehow copy our output on each iteration of the main blame loop. Which is yet another reason why I want the blame loop to act like an iterator, so the application can stop and inspect our \"scoreboard\" of lines, and snapshot something if they want to preserve it.\n\nBut if they are just blaming the current file and showing it, they don\'t need tracking of lines through everything. And they don\'t need the garbage that goes along with this method.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///kk='),(134,1,'2011-05-25 18:05:51','P',1,'Missing @Override',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///mc='),(138,1,'2011-05-25 18:05:51','P',1,'Missing @Override',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///mg='),(129,1,'2011-05-25 18:05:51','P',1,'Missing @Override',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///mY='),(178,1,'2011-05-25 18:05:51','P',1,'Why is it acceptable for line to be null here, but then not increment index?',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///l0='),(113,1,'2011-05-25 18:05:51','P',1,'\"this\" is not necessary.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///l4='),(119,1,'2011-05-25 18:05:51','P',1,'Style-nit: \"this\" is not necessary.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///l8='),(236,1,'2011-05-25 18:05:51','P',1,'Same remark as above.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///lc='),(222,1,'2011-05-25 18:05:51','P',1,'Do not expose this. Callers will think they can use it to get any line at random, but it has no caching and will perform horribly. On a tiny 3 line file it *might* be acceptable. On a typical source file, it will be too slow to complete.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///lg='),(211,1,'2011-05-25 18:05:51','P',1,'\"this\" is not necessary.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///lo='),(201,1,'2011-05-25 18:05:51','P',1,'\"this\" isn\'t necessary. And then line wraps badly. And I prefer to put the variable in the middle. That is, rewrite as:\n\n  if (0 <= lineNumber && lineNumber < lines.length)\n    return lines[lineNumber];\n  return null;',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///ls='),(243,1,'2011-05-25 18:05:51','P',1,'You can replace all of this with:\n\n  byte[] input = loader.getCachedBytes(Integer.MAX_VALUE);\n\nIt handles reading from a stream into a byte array if its large for you. But throws LargeObjectException if the array cannot be allocated, or if the object size exceeds the array size.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///lU='),(191,1,'2011-05-25 18:05:51','P',1,'\"this\" is not necessary.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///lw='),(118,1,'2011-05-25 18:05:51','P',1,'Missing @Override',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///mA='),(107,1,'2011-05-25 18:05:51','P',1,'Missing @Override',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///mE='),(103,1,'2011-05-25 18:05:51','P',1,'Missing @Override',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///mI='),(82,1,'2011-05-25 18:05:51','P',1,'Looks like this can be final.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///mM='),(79,1,'2011-05-25 18:05:51','P',1,'Style-nit: Unnecessary blank line.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///mQ='),(69,1,'2011-05-25 18:05:51','P',1,'Please declare this final.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Revision.java','AABOJX///mU='),(173,1,'2011-05-25 18:05:51','P',1,'The names current and previous are confusing here. Can we name them a and b to match what they mean in edits?\n\nOne of these (is it previous?) corresponds to the older revision, aka the \"A\" side of the EditList, and the other matches the newer revision, aka the \"B\" side of the EditList.\n\nIt would be nice if you can make that obvious to the reader. Because I\'m confused... and I shouldn\'t be.\n\nOr better, reuse the exact same names as you have in the build() loop, since this is only called from that method.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///k0='),(275,1,'2011-05-25 18:05:51','P',1,'We should actually use RENAME or COPY here. If you look at the bottom of FollowFilter we have a tiny method for this:\n\n	private static boolean isRename(DiffEntry ent) {\n		return ent.getChangeType() == ChangeType.RENAME\n			|| ent.getChangeType() == ChangeType.COPY;\n	}',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///k4='),(269,1,'2011-05-25 18:05:51','P',1,'I hate myself for not exposing the rename data out of RevWalk. It means we have to do it twice here. *sigh*\n\nA cleaner way to do this is to do it after-the-fact. That is, have your code be something like:\n\n  TreeWalk blobWalk = TreeWalk.forPath(reader, currentPath, commit.getTree());\n  if (blobWalk == null) {\n    if (next == null)\n      break;  // The file never existed. Abort traversal.\n\n    // Maybe the file was renamed?\n    ... diff next\'s tree against commit.getTree()\n    ... see if next\'s path was renamed\n    ... if so, update currentPath\n    ... if not, break\n  }\n  ... run blame on this path ...',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///k8='),(169,1,'2011-05-25 18:05:51','P',1,'This isn\'t really correct. These lines don\'t belong to commit. We don\'t know where they came from until *after* the next iteration of build() can execute and we can accurately blame them on revision, or they need to carry earlier.\n\nI would build these Line objects with no commit at all at this stage. If no commit is set, it means we don\'t yet know the origin of the Line. Later during mergeLines() we assign the commit to a Line if the Line appears in the B range (assuming you invert the diff like I suggest below).',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///ko='),(262,1,'2011-05-25 18:05:51','P',1,'I would invert this diff. Run the algorithm as:\n\n  diffAlgorithm.diff(textComparator, currentText, nextText)\n\nThen we are looking at the diff \"normally\", rather than in reverse. Lines that were added by nextText (aka the prior loop iteration) are shown on the \"B\" side of the difference as additions, the same way you would see that if you ran `git log -p`. This makes it easier to reason about how the difference is being used during mergeLines().',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///ks='),(241,1,'2011-05-25 18:05:51','P',1,'I understand why you call this \"next\", but the way its used is confusing.\n\nThis is the newer revision of the file. But we are walking backwards, so it was the last thing examined.\n\nI think I would have still named it \"lastRevision\" and \"lastText\" since from the perspective of the loop below it was the last thing examined... even though its actually the more recent revision. At least to me, I find code like this easier to read when everything speaks normally about the loop (e.g. last iteration of the loop) and I only need to remember that the loop itself is going through the graph in a particular direction (backwards).',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///kw='),(251,1,'2011-05-25 18:05:51','P',1,'If blobWalk is null, break the traversal. We can\'t continue to dig around the history if the file in question has disappeared.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///lA='),(229,1,'2011-05-25 18:05:51','P',1,'I find the convention of using a callback function so the caller can tell you when to stop iterating awkward.\n\nI would prefer to have this behave like an iterator that the caller can invoke to get the next Revision built and returned to them, and expose a release() method that the caller can use to clean up your RevWalk. That implies moving the RevWalk and TreeWalk into instance members. But the API then starts to work and behave like RevWalk itself, making it more consistent.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///lE='),(232,1,'2011-05-25 18:05:51','P',1,'I would prefer having all of this code inside of the try/finally. Just in case new TreeWalk throws due to OutOfMemoryError, we can at least clean up the revWalk with a release() before the exception pops up the call stack.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///lI='),(153,1,'2011-05-25 18:05:51','P',1,'Replace this all with:\n\n  byte[] contents = loader.getCachedBytes(Integer.MAX_VALUE);',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///lM='),(76,1,'2011-05-25 18:05:51','P',1,'This should be final.',NULL,3222,18,'org.eclipse.jgit/src/org/eclipse/jgit/blame/RevisionBuilder.java','AABOJX///lQ='),(232,1,'2011-05-27 16:59:21','P',1,'This is still not incremental. You are building everything for this one file at once. Which doesn\'t give the caller a chance to see if the block you have is sufficient and stop you from processing more history.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJX///bc='),(156,1,'2011-05-27 16:59:21','P',1,'Is it really necessary to use List<Line> here?\n\nThe size of the file cannot change. So we could use Line[]. Which is one less object allocation, and removes a metric ton of virtual method dispatching during access.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJX///bk='),(268,1,'2011-05-27 16:59:21','P',1,'Hoist this block out of the loop. Its executed exactly once. There is no reason to be doing the if lastText != null test on every iteration of the loop, or having to jump over this block of code before it gets executed.\n\nSure, a compiler could do this for you. If it was really smart. But its still damn confusing for a human to read because now I\'m looking for \"How does Kevin set lastText = null in the body of the loop to make this block reachable after the first iteration?\" and the answer is... he doesn\'t.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJX///bM='),(254,1,'2011-05-27 16:59:21','P',1,'You should be able to stop after all lines are covered in the file, even if the file still has history. So keep track of how many lines still need blame data, and update it each time you run merge.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJX///bQ='),(272,1,'2011-05-27 16:59:21','P',1,'What part of \"do this only if blobWalk is null at the start of a loop\" did you not understand from my comments on patch set 18?\n\nFiles are renamed infrequently. Always looking for rename information on every commit is horrifically slow. Do it only when the file suddenly disappears on you. When the file is gone, either its because its history is over,  or its because the file was renamed. Its only worth doing the rename detection when its gone.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJX///bU='),(119,1,'2011-05-27 16:59:21','P',1,'^ shouldn\'t always be true here. Some lines will be blamed onto the commit, at which point ^ isn\'t the right annotation for it.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///b0='),(66,1,'2011-05-27 16:59:21','P',1,'Why is this constructor public?\n\nIf its to permit copying a Line (so an application can take a \"snapshot\"), we should instead support some sort of copy constructor that takes a Line object, or a cloneLine() method that returns a copied Line object.\n\nOtherwise, I think this should be package-private. Only the BlameGenerator should need to construct a Line object.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///b4='),(77,1,'2011-05-27 16:59:21','P',1,'Should be called setCommit().',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///b8='),(134,1,'2011-05-27 16:59:21','P',1,'Style-nit: Unnecessary blank line.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///bo='),(127,1,'2011-05-27 16:59:21','P',1,'Again, null check.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///bs='),(123,1,'2011-05-27 16:59:21','P',1,'This should have a null check on it... its semi-legal for the author to be missing.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///bw='),(87,1,'2011-05-27 16:59:21','P',1,'Callers need to be able to determine if this line is blamed to this commit, or the line is blamed to one of its ancestors. You don\'t have a way to tell them this information, as the Line object doesn\'t have it.',NULL,3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///bY='),(119,208,'2011-05-27 21:50:15','P',1,'Never mind, I now understand what you mean, apologies.','AABOJX///Zo=',3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///Yc='),(87,208,'2011-05-27 18:29:53','P',1,'Could you elaborate a little more on this comment?','AABOJX///bY=',3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///Zk='),(119,208,'2011-05-27 18:29:53','P',1,'Could you elaborate a little more on this comment?','AABOJX///b0=',3222,23,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJX///Zo='),(79,1,'2011-05-27 23:20:14','P',1,'Don\'t declare these fields private. Leave them package access. That way we don\'t need synthetic accessor methods to use them. Since the Session class is private, the fields are already not-visible.',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////0='),(192,1,'2011-05-27 23:20:14','P',1,'What does this actually mean?',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////c='),(199,1,'2011-05-27 23:20:14','P',1,'How can line be null? We created a Line object for every line in the \"B\" side earlier during createLines(). Here we have concluded that the line in question at bIndex is common to both files since it occurs before the first edit, or between two edits. Therefore the line *must* exist in \"B\" and cannot be null.',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////g='),(173,1,'2011-05-27 23:50:49','P',1,'No. I\'m taking this patch set as a starting point and will upload something soon.','AABOJn////Q=',3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////I='),(245,1,'2011-05-27 23:20:14','P',1,'Change this method to return true here instead of break, and return false if you fall out of the loop.\n\nThen below in next() you can use the return value of updatePath to know if you should just stop and not even look up the path in the tree again.',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////k='),(330,1,'2011-05-27 23:20:14','P',1,'Move this into the block above:\n\n  if (blob == null) {\n    updatePath(commit);\n    blob = getBlob(commit);\n    if (blob == null) {\n      markSessionBound();\n      return false;\n    }\n  }',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////o='),(173,208,'2011-05-27 23:27:38','P',1,'Does that mean you won\'t want me to incorporate any of your comments and upload further patches?','AABOJn////Y=',3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////Q='),(272,1,'2011-05-27 23:20:14','P',1,'Why null? If the file we are blaming is empty, shouldn\'t we return an empty List? Or do you mean \"empty list on empty file, null if file does not exist\"?',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////s='),(104,1,'2011-05-27 23:20:14','P',1,'What is the point of the Session object if its declared final? Why not inline these fields into the BlameGenerator and avoid an extra field lookup on each access?',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////w='),(173,1,'2011-05-27 23:20:14','P',1,'I\'m now doubting the need for a Line class. Its overkill on memory usage.\n\nI\'m going to just upload a replacement proposal at this point.',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java','AABOJn////Y='),(142,1,'2011-05-27 23:20:14','P',1,'!bound || commit.getParentCount() == 0',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJn////4='),(113,1,'2011-05-27 23:20:14','P',1,'s/current complete/current commit/',NULL,3222,28,'org.eclipse.jgit/src/org/eclipse/jgit/blame/Line.java','AABOJn////8='),(19,2,'2011-04-24 16:13:12','P',1,'As a future note, we don\'t include author tags.',NULL,3224,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/LabelComparator.java','AAAL4n///yk='),(9,6,'2011-04-28 09:35:33','P',1,'spelling: pastes',NULL,3231,1,'/COMMIT_MSG','AABOIX///xY='),(1001,6,'2011-04-28 09:35:33','P',1,'Currently the action does nothing when more than one file is selected. Either disable the action or do anything, e.g. paste all file names separated by comma.',NULL,3231,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AABOIX///xU='),(513,6,'2011-04-28 09:35:33','P',1,'spelling: \"Commit Message\" as in the dialog',NULL,3231,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AABOIX///xQ='),(10,4,'2011-05-04 20:13:20','P',1,'that\'s not an option but an action\n\nIs there a way to use the same dialog in Team menu and in Synchronize view menu ?',NULL,3234,3,'/COMMIT_MSG','AABOIn///mY='),(9,6,'2011-05-03 14:23:18','d',1,'typo:  in which one can...',NULL,3235,2,'/COMMIT_MSG','AABOIn///xc='),(231,49,'2011-04-28 19:39:44','P',1,'Done','AABOIX///vo=',3235,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AABOIX///rE='),(231,6,'2011-04-28 13:39:48','P',1,'The currently checked out branch should be preselected.',NULL,3235,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java','AABOIX///vo='),(335,49,'2011-05-07 14:05:32','P',1,'Done','AABOIn///ZA=',3235,6,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/team/actions/BranchAndResetActionTest.java','AABOIn///UU='),(335,6,'2011-05-06 08:44:48','P',1,'Style nit: formatting',NULL,3235,6,'org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/test/team/actions/BranchAndResetActionTest.java','AABOIn///ZA='),(40,49,'2011-04-28 19:47:50','P',1,'Done','AABOIX///x0=',3237,1,'org.eclipse.egit.ui/plugin.properties','AABOIX///qs='),(40,74,'2011-04-28 08:18:10','P',1,'Please omit the \"...\" as this action doesn\'t need a dialog. \"...\" is only used on actions that will open up a dialog',NULL,3237,1,'org.eclipse.egit.ui/plugin.properties','AABOIX///x0='),(36,49,'2011-04-28 19:47:50','P',1,'Done','AABOIX///xw=',3237,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SynchronizeWorkspaceActionHandler.java','AABOIX///qo='),(36,74,'2011-04-28 08:18:10','P',1,'Not sure what you tried to achive with\n repos.length != repos.length\nshould rather be\n repos.length == 0',NULL,3237,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SynchronizeWorkspaceActionHandler.java','AABOIX///xw='),(40,208,'2011-05-18 20:53:20','P',1,'Style nit: Curlies not needed',NULL,3237,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SynchronizeWorkspaceActionHandler.java','AABOI3///M4='),(40,49,'2011-05-18 21:07:48','P',1,'Done','AABOI3///M4=',3237,3,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/SynchronizeWorkspaceActionHandler.java','AABOI3///Mw='),(73,74,'2011-04-27 01:00:46','P',1,'You might want to check out https://bugs.eclipse.org/bugs/show_bug.cgi?id=310798 as alternative',NULL,3260,1,'org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/gist/GistTaskEditorPage.java','AABOIX////c='),(297,8,'2011-05-02 20:22:06','P',1,'I wasn\'t even convinced about adding the printstacktrace... what could\ncause an exception here?','AABOIn///48=',3261,2,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AABOIn///1M='),(268,8,'2011-05-02 20:22:06','P',1,'This is for debugging the environment. Things work ok on my machine, but not others.','AABOIn///5I=',3261,2,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AABOIn///1Q='),(297,1,'2011-05-02 14:20:28','P',1,'This isn\'t true. You could work harder as a programmer and transfer the exception object from the gobbler thread into a variable that is shared with the calling thread, then have the calling thread wait for completion of the gobbler thread and check its exception status.\n\nActually, this may be what you want. If we are unable to read the command and we are capturing the command\'s stderr stream, we should wrap that up into an exception object and throw it to the caller rather than assuming everything is OK, or printing it to our own Java stderr.',NULL,3261,2,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AABOIn///48='),(268,1,'2011-05-02 14:20:28','P',1,'Do we need to keep this debugging code in?\n\nIf so I would prefer to use Boolean to parse the variable and support true/false here rather than set/unset.',NULL,3261,2,'org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java','AABOIn///5I='),(102,210,'2011-04-27 19:07:13','P',1,'repo should be renamed to id',NULL,3265,1,'org.eclipse.mylyn.github.core/src/org/eclipse/mylyn/github/internal/GistService.java','AABOIX///70='),(126,210,'2011-04-27 19:07:13','P',1,'/gists/1.json',NULL,3265,1,'org.eclipse.mylyn.github.tests/src/org/eclipse/mylyn/github/internal/GistServiceTest.java','AABOIX///7o='),(124,210,'2011-04-27 19:07:13','P',1,'gist.setId(\"1\");',NULL,3265,1,'org.eclipse.mylyn.github.tests/src/org/eclipse/mylyn/github/internal/GistServiceTest.java','AABOIX///7s='),(115,210,'2011-04-27 19:07:13','P',1,'please rename test to updateGist_NullId',NULL,3265,1,'org.eclipse.mylyn.github.tests/src/org/eclipse/mylyn/github/internal/GistServiceTest.java','AABOIX///7w='),(9,4,'2011-04-29 19:57:50','P',1,'this depends on CQ 5111 hence a corresponding footer should be added',NULL,3273,2,'/COMMIT_MSG','AABOIn///8w='),(71,4,'2011-04-29 19:57:50','P',1,'trailing whitespace',NULL,3273,2,'org.eclipse.jgit.ant/pom.xml','AABOIn///80='),(3,4,'2011-05-04 12:37:24','P',1,'style nit: trailing whitespace',NULL,3273,3,'org.eclipse.jgit.ant/pom.xml','AABOIn///qI='),(71,4,'2011-05-04 12:37:24','P',1,'style nit: trailing whitespace',NULL,3273,3,'org.eclipse.jgit.ant/pom.xml','AABOIn///qM='),(51,4,'2011-05-04 12:37:24','P',1,'needs to be updated to 1.0.0-SNAPSHOT',NULL,3273,3,'org.eclipse.jgit.ant/pom.xml','AABOIn///qQ='),(123,6,'2011-04-28 12:28:24','P',1,'You may add tow more tests for the case that there are changes in the index:\n\n	@Test\n	public void testUpdateWorkingDirectoryFromIndex() throws Exception {\n		CheckoutCommand co = git.checkout();\n		File written = writeTrashFile(\"Test.txt\", \"3a\");\n		git.add().addFilepattern(\"Test.txt\").call();\n		written = writeTrashFile(\"Test.txt\", \"\");\n		assertEquals(\"\", read(written));\n		co.addPath(\"Test.txt\").call();\n		assertEquals(\"3a\", read(written));\n		assertEquals(\"c\", read(new File(db.getWorkTree(), \"Test2.txt\")));\n	}\n\n	@Test\n	public void testUpdateWorkingDirectoryFromHeadWithIndexChange()\n			throws Exception {\n		CheckoutCommand co = git.checkout();\n		File written = writeTrashFile(\"Test.txt\", \"3a\");\n		git.add().addFilepattern(\"Test.txt\").call();\n		written = writeTrashFile(\"Test.txt\", \"\");\n		assertEquals(\"\", read(written));\n		co.addPath(\"Test.txt\").setStartPoint(\"HEAD\").call();\n		assertEquals(\"3\", read(written));\n		assertEquals(\"c\", read(new File(db.getWorkTree(), \"Test2.txt\")));\n	}',NULL,3280,14,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PathCheckoutCommandTest.java','AABOIX///vw='),(116,6,'2011-04-28 12:28:24','P',1,'In all the other commands call() is the first method after the constructor. Please stick to that pattern.',NULL,3280,14,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java','AABOIX///v0='),(251,6,'2011-05-03 13:53:01','P',1,'The following lines of code have the purpose to transfer folder paths to the list of contained files, right? \n\nIt took some time for me to figure that out, so maybe it would be useful to extract a method here.',NULL,3280,15,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java','AABOIn///yg='),(254,6,'2011-05-03 13:53:01','P',1,'Use treeWalk.setRecursive(true); instead of the if/else statement below',NULL,3280,15,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java','AABOIn///ys='),(59,6,'2011-05-03 13:55:12','P',1,'This does not work on windows. You must always use \"/\" for paths in jgit.',NULL,3280,17,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PathCheckoutCommandTest.java','AABOIn///yw='),(271,6,'2011-05-03 13:55:12','P',1,'Better: startWalk.setRecursive(true); (see above)',NULL,3280,17,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java','AABOIn///yk='),(260,6,'2011-05-03 13:55:12','P',1,'Better: treeWalk.setRecursive(true); (see above)',NULL,3280,17,'org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java','AABOIn///yo='),(453,49,'2011-04-28 08:24:18','P',1,'we don\'t use curly brackets around one single line block\'s',NULL,3282,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryActionHandler.java','AABOIX///x4='),(451,49,'2011-04-28 08:24:18','P',1,'we don\'t use curly brackets around one single line block\'s',NULL,3282,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryActionHandler.java','AABOIX///x8='),(449,49,'2011-04-28 08:24:18','P',1,'we don\'t use curly brackets around one single line block\'s',NULL,3282,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryActionHandler.java','AABOIX///yA='),(13,49,'2011-04-28 10:16:55','P',1,'I think that this empty line should be removed',NULL,3282,2,'/COMMIT_MSG','AABOIX///wk='),(58,49,'2011-04-28 10:15:52','P',1,'Curly brackets are not needed here ;)',NULL,3282,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/mapping/GitContainerMapping.java','AABOIX///ws='),(13,4,'2011-05-16 23:37:51','P',1,'style nit: all footers should be in last paragraph so remove this blank line',NULL,3282,4,'/COMMIT_MSG','AABOI3///aQ='),(782,4,'2011-05-16 23:37:51','P',1,'style nit: whitespace errors',NULL,3282,4,'org.eclipse.egit.ui/plugin.xml','AABOI3///aU='),(11,4,'2011-05-02 15:47:18','P',1,'don\'t use full URL instead just give the bug number, gerrit will expand that',NULL,3283,1,'/COMMIT_MSG','AABOIn///3Q='),(7,4,'2011-05-02 15:47:18','P',1,'trailing whitespace',NULL,3283,1,'/COMMIT_MSG','AABOIn///3U='),(53,4,'2011-05-10 14:52:06','P',1,'style nit: we rather use @Override than @see tags',NULL,3287,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitResultLabelProvider.java','AABOIn///Gc='),(82,49,'2011-04-29 13:03:49','P',1,'as usually, please remove curly brackets around single line blocks',NULL,3297,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/GitModelSynchronizeParticipant.java','AABOIX///m4='),(27,2,'2011-04-29 19:03:45','P',1,'we don\'t use @author tags, can you please remove it\n\nAlso the trailing whitespace :)',NULL,3301,2,'org.eclipse.mylyn.github.tests/src/org/eclipse/mylyn/github/internal/PullRequestServiceTest.java','AABOIn///9s='),(11,210,'2011-05-10 06:40:54','P',1,'Yes, i think so, we have httpclient 3.1.0 now as transitive dependency via org.eclipse.mylyn.commons.net, but I think for httpclient 4.1.0 we need a new CQ ...','AABOIn///IY=',3302,1,'org.eclipse.mylyn.github.core/META-INF/MANIFEST.MF','AABOIn///H8='),(11,4,'2011-05-09 23:13:30','P',1,'we need a CQ for this new dependency, right ?',NULL,3302,1,'org.eclipse.mylyn.github.core/META-INF/MANIFEST.MF','AABOIn///IY='),(90,2,'2011-05-02 20:13:23','d',1,'Looks good!',NULL,3313,1,'org.eclipse.jgit.ant/src/org/eclipse/jgit/ant/tasks/GitInitTask.java','AABOIn///1U='),(7,4,'2011-05-04 20:13:48','P',1,'you renamed that to ButtonLabelProvider, maybe it should be renamed to StyledButtonLabelProvider and explain in the message body what is styled here',NULL,3314,2,'/COMMIT_MSG','AABOIn///mg='),(35,4,'2011-05-04 20:13:48','P',0,'I suspect your enhancement should also affect this javadoc',NULL,3314,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/components/ButtonLabelProvider.java','AABOIn///mc='),(1058,49,'2011-05-04 15:30:28','d',1,'Done','AABOIn///qY=',3315,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AABOIn///oY='),(1058,4,'2011-05-04 12:34:27','P',1,'typo: s/Synchronzie/Synchronize/',NULL,3315,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AABOIn///qY='),(315,4,'2011-05-04 20:26:52','P',1,'typo s/Custome/Custom/',NULL,3315,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/GitPreconfiguredSynchronizeWizardPage.java','AABOIn///m0='),(335,4,'2011-05-04 20:26:52','P',1,'typo s/Predefinded/Predefined/',NULL,3315,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/GitPreconfiguredSynchronizeWizardPage.java','AABOIn///ms='),(326,4,'2011-05-04 20:26:52','P',1,'typo s/Custome/Custom/',NULL,3315,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/GitPreconfiguredSynchronizeWizardPage.java','AABOIn///mw='),(1059,4,'2011-05-04 20:26:52','P',1,'better: s/if there is one configured/if any is configured/',NULL,3315,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AABOIn///mk='),(1061,4,'2011-05-04 20:26:52','P',1,'typo s/custome/custom/',NULL,3315,2,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/uitext.properties','AABOIn///mo='),(31,4,'2011-05-03 15:00:30','P',1,'no qualifier here : s/1.0.0.qualifier/1.0.0/',NULL,3320,1,'org.eclipse.egit.mylyn-feature/feature.xml','AABOIn///y0='),(100,4,'2011-05-03 15:00:30','P',1,'no -SNAPSHOT here\ns/1.0.0-SNAPSHOT/1.0.0/',NULL,3320,1,'org.eclipse.egit.ui.test/pom.xml','AABOIn///xQ='),(95,4,'2011-05-03 15:00:30','P',1,'no -SNAPSHOT here\ns/1.0.0-SNAPSHOT/1.0.0/',NULL,3320,1,'org.eclipse.egit.ui.test/pom.xml','AABOIn///xU='),(569,214,'2011-05-10 22:33:08','P',1,'With that version I get the following test failure.\n\njava.lang.AssertionError: expected:<SAFE> but was:<REBASING_INTERACTIVE>\n	at org.junit.Assert.fail(Assert.java:91)\n	at org.junit.Assert.failNotEquals(Assert.java:645)\n	at org.junit.Assert.assertEquals(Assert.java:126)\n	at org.junit.Assert.assertEquals(Assert.java:145)\n	at org.eclipse.jgit.api.PullCommandWithRebaseTest.testPullFastForward(PullCommandWithRebaseTest.java:103)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n	at java.lang.reflect.Method.invoke(Method.java:597)\n	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)\n	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)\n	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)\n	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)\n	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)\n	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)\n	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)\n	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)\n	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)\n	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)\n	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)\n	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)\n	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)\n	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)\n	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)\n	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)\n	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)\n	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)\n	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)\n	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)','AABOIn///F8=',3336,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOIn///Dg='),(569,79,'2011-05-10 20:01:30','P',1,'I don\'t see why this whole section is even necessary.\n\nTo get the same results (verified it just now), remove the section and change the following check:\n\n                // nothing to do: return with UP_TO_DATE_RESULT\n-               if (cherryPickList.isEmpty())\n+               if (cherryPickList.isEmpty() && headId.equals(upstreamCommit.getId()))\n                        return RebaseResult.UP_TO_DATE_RESULT;\n\nAnd in call(), change the last return statement:\n\n                        }\n-                       return new RebaseResult(Status.UP_TO_DATE);\n+                       return new RebaseResult(Status.FAST_FORWARD);',NULL,3336,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOIn///F8='),(569,79,'2011-05-11 19:55:35','P',1,'I see (I only ran RebaseCommandTest), the problems are the state files. In this case, a merge is probably the right thing to do (or maybe just a checkout).','AABOIn///Dg=',3336,1,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOIn//++U='),(201,214,'2011-05-13 11:33:11','P',1,'Do you mean create\n\nA - B\n  \\\n   C - D - F\n    \\      /\n     E -\n\nAnd then rebase F onto B?\n\nI tried that and it failed as expected;\n\norg.eclipse.jgit.api.errors.MultipleParentsNotAllowedException: Can only cherry-pick commits which have exactly one parent\n	at org.eclipse.jgit.api.CherryPickCommand.call(CherryPickCommand.java:126)\n	at org.eclipse.jgit.api.RebaseCommand.call(RebaseCommand.java:256)\n	at org.eclipse.jgit.api.RebaseCommandTest.testRebaseFailsCantCherryPickMergeCommits(RebaseCommandTest.java:206)','AABOI3///9k=',3336,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java','AABOI3///1k='),(201,5,'2011-05-12 21:29:11','P',1,'That test here is ok. But please add a copy of this test and this time add here the following lines:\n\n		writeTrashFile(\"file2\", \"more changess\");\n		git.add().addFilepattern(\"file2\").call();\n		git.commit().setMessage(\"update file2 on target\")\n				.call();\n\nThis will remove the possibility to fast-forward. The rebase algorithm now has to cherry-pick every single missing commit. But we cannot cherry-pick merge commits. In my eyes the rebase command know should return with an error that it cannot cherry-pick merge-commits. But it is not doing so.',NULL,3336,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java','AABOI3///9k='),(201,5,'2011-05-13 14:24:24','P',1,'Nearly. If you simply add the lines I suggest you get to a graph similar to the one you say but then we rebase B onto F (and not F onto B).\n\nMy question is more: shouldn\' we check for this problem in the RebaseCommand and don\'t even start rebasing when we see this? I most cases I don\'t like to check for error conditions when I know the situation is handled already later. \nBut here it could make sense. First: what Rebase does is expensive. Second: the check is cheap. We anyhow have to visit every commit to be cherry-picked during the initialization phase of the rebase command. A simple check whether any of the commits is merge commit in the loop where we build up the cherryPickList is easy to implement.','AABOI3///1k=',3336,2,'org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java','AABOI3///y0='),(288,214,'2011-05-13 11:33:11','P',1,'Done','AABOI3///9g=',3336,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///1g='),(536,214,'2011-05-13 11:33:11','P',0,'So if we take care of the fastfoward and up-to-date cases before the log call then we could check for the merge commits before we start any cherry picking.  E.g.\n\n		for (RevCommit commit : commitsToUse) {\n			if (commit.getParentCount() != 1)\n				throw new JGitInternalException(\n						JGitText.get().canOnlyCherryPickCommitsWithOneParent);\n			cherryPickList.add(commit);\n		}','AABOI3///9U=',3336,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///1U='),(582,214,'2011-05-13 11:33:11','P',1,'Done for the first part, not sure what you mean by the second.','AABOI3///9Q=',3336,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///1Y='),(288,5,'2011-05-12 21:29:11','P',1,'I would name this method updateHead(). There is no way to \"update a previous HEAD\", or?',NULL,3336,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///9g='),(582,5,'2011-05-12 21:29:11','P',1,'also this check for up-to-date could be done before we do the log() command and before we start handling single commits. Some check in the beginning of this method like our check for fast-forward.',NULL,3336,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///9Q='),(536,5,'2011-05-12 21:29:11','P',0,'I really like this idea to remove this block. Also for me this whole block didn\'t make much sense to me.\n\nBut know we have another problem. We cannot cherry-pick merge-commits. If the cherryPickList contains a merge-commit then our only chance for our rebase command to succed is that we can fast-forward in a way that we don\'t have to process (cherry-pick) the merge commit anymore.\n\nI would suggest that we simply add one check in the beginning of the initFilesAndRewind() method (before we call the log() command) . Something like:\n\nif (walk.isMergedInto(headCommit, upstreamCommit))\n  updateHead()...\n\nFor the easy case of a simple fast-forward we can skip all this complicated cases of cherry-picking each and every commit, handling merge commits, ...',NULL,3336,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///9U='),(582,5,'2011-05-13 14:24:24','P',1,'as I see from your last proposal you don\'t have an open question here anymore, right?','AABOI3///1Y=',3336,2,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///y8='),(546,5,'2011-05-13 14:24:32','P',1,'+1','AABOI3///zc=',3336,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///zA='),(546,79,'2011-05-13 13:33:13','P',1,'We could create a static RebaseResult.FAST_FORWARD_RESULT, just like RebaseResult.UP_TO_DATE_RESULT, and use that.',NULL,3336,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///zc='),(532,5,'2011-05-13 14:24:32','P',1,'You are too fast for me :-) In order to explain what I wanted I was trying out the following lines here:\n\nif (walk.isMergedInto(upstreamCommit, headCommit)) {\n  return RebaseResult.UP_TO_DATE_RESULT;\n} else if (walk.isMergedInto(headCommit, upstreamCommit)) {\n  checkoutCommit(upstreamCommit);\n  updatePreviousHead(headName, upstreamCommit);\n  return new RebaseResult(RebaseResult.Status.FAST_FORWARD);\n}\n\n... just to see that your latest proposal is the nearly the same. I would only change your check for UP_TO_DATE_RESULT to mine. Imagine somebody invokes a rebase of HEAD to HEAD~3. That\'s also an up-to-date result',NULL,3336,3,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java','AABOI3///zM='),(93,79,'2011-05-14 13:22:02','P',1,'Chris already added FAST_FORWARD_RESULT in c22eab4948fbeaa26f6b892b5061bb174496d1ca -> rebase.',NULL,3336,4,'org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseResult.java','AABOI3///uc='),(11,1,'2011-05-13 01:30:05','P',1,'Chris, this change is ready to be submitted. Its just waiting on getting protobuf added as part of Orbit.\n\nCan you also verify the OSGI linkage above is correct?',NULL,3345,2,'org.eclipse.jgit.generated.storage.dht.proto/META-INF/MANIFEST.MF','AABOI3///3Y='),(11,1,'2011-05-25 01:22:24','P',1,'I need to double check this is actually what is in Orbit.',NULL,3345,6,'org.eclipse.jgit.generated.storage.dht.proto/META-INF/MANIFEST.MF','AABOJX///vw='),(44,111,'2011-05-17 15:27:07','d',1,'Test\n',NULL,3352,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AABOI3///W0='),(57,111,'2011-05-17 15:26:21','d',1,'Test\n',NULL,3352,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/CommitDialog.java','AABOI3///W4='),(299,6,'2011-05-11 13:50:58','P',1,'Ah, thanks. Now I see what it\'s for.\n\nI\'m not that familiar with that, but your solution works.','AABOIn///IQ=',3354,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryActionHandler.java','AABOIn///AM='),(299,214,'2011-05-09 23:19:57','P',1,'When I called the ActionCommands.COMPARE_WITH_INDEX_ACTION from the staging view I found that it would not use my supplied context instead getEvaluationContext() would be called, convertSelection would then return <empty selection> instead of the selection in my supplied context.\n\nThe framework class Command in executeWithChecks calls setEnabled(event.getApplicationContext()) (e.g. the supplied context) and then isEnabled() which without this change uses a different context.\n\nThis is my first foray into eclipse RCP and its a big learning curve so I may have missed something completely.  This change \'makes it work for me\' though...','AABOIn///LU=',3354,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryActionHandler.java','AABOIn///IQ='),(299,6,'2011-05-09 13:45:10','P',1,'Just for me to understand: When is mySelection == null? \n\nIn my tests, whenever this is the case, I get an <empty selection> as return value from convertSelection. So what is the usecase for the evalutation of the IEvaluationContext?',NULL,3354,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/actions/RepositoryActionHandler.java','AABOIn///LU='),(294,214,'2011-05-09 23:47:01','P',1,'Ah! Yes.','AABOIn///LM=',3355,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///II='),(294,6,'2011-05-09 14:14:54','P',1,'This is not what I would expect. I would expect a comparison between index and HEAD.',NULL,3355,1,'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java','AABOIn///LM='),(7,118,'2011-05-06 15:10:59','P',1,'The current diff is:\n\" folder\"\nwhen it should be:\n\"- folder\n+ folder change\".','AABOIn///Ww=',3356,1,'/COMMIT_MSG','AABOIn///Vg='),(10,118,'2011-05-06 15:10:59','P',1,'Sorry, will fix my commit template. It seems that because I used \"bug\" (lower case) the Changed-Id has been added at wrong position. I didn\'t put it there manually.','AABOIn///Ws=',3356,1,'/COMMIT_MSG','AABOIn///Vk='),(10,1,'2011-05-06 15:00:18','P',1,'Style-nit: Use \"Bug:\" not \"bug:\".  Also, we tend to put this on the line before the Change-Id.',NULL,3356,1,'/COMMIT_MSG','AABOIn///Ws='),(7,1,'2011-05-06 15:00:18','P',1,'Please elaborate and describe what the strange result is, and how it should be instead so that it is less strange.\n\nOK, after reading the bug, I wish you had at least echoed the bug report here in the commit message. That would have saved me a lot of time commenting on the pgm.Diff class hacks that are used just to setup the test case.',NULL,3356,1,'/COMMIT_MSG','AABOIn///Ww='),(76,1,'2011-05-06 15:00:18','P',1,'Please do not add empty Javadoc.\n\nEspecially in a commit whose only description is \"gives strange result\".',NULL,3356,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java','AABOIn///W0='),(100,1,'2011-05-06 15:00:18','P',1,'Do not make public.',NULL,3356,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java','AABOIn///Wc='),(97,1,'2011-05-06 15:00:18','P',1,'Do not add empty Javadoc.',NULL,3356,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java','AABOIn///Wg='),(79,1,'2011-05-06 15:00:18','P',1,'Do not make this class public.',NULL,3356,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java','AABOIn///Wk='),(84,1,'2011-05-06 15:00:18','P',1,'Please do not make this public, nor non-final.',NULL,3356,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java','AABOIn///Wo='),(179,1,'2011-05-06 15:00:18','P',1,'Do not make public.',NULL,3356,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Diff.java','AABOIn///WY='),(86,1,'2011-05-06 15:00:18','P',1,'Do not make public.',NULL,3356,1,'org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/TextBuiltin.java','AABOIn///WU='),(31,1,'2011-05-06 15:00:18','P',1,'This should be using DiffFormatter, not pgm.Diff.',NULL,3356,1,'org.eclipse.jgit.test/tst/org/eclipse/jgit/diff/DiffTest.java','AABOIn///WM='),