{"thread":{"id":"14701","subject":"[JGIT PATCH 1/2] Fix missing packed-refs entries during ref lookup/enumeration","startedAt":"2008-07-27T04:33:40Z","lastAt":"2008-07-27T04:33:41Z","messageCount":2,"participants":["Shawn O. Pearce"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"85140","messageId":"1217133221-15513-1-git-send-email-spearce@spearce.org","threadId":"14701","inReplyTo":null,"subject":"[JGIT PATCH 1/2] Fix missing packed-refs entries during ref lookup/enumeration","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-07-27T04:33:40Z","receivedAt":"2008-07-27T04:33:40Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Some codepaths in RefDatabase allowed the caller to lookup a ref\nwithout making sure the packed-refs file was loaded into memory.\nThis caused refs which were only packed to appear to not exist,\nwhich meant fetch would still try to fetch something we already\nhave had for quite some time.\n\nThis resolves the issue I was seeing where `jgit fetch` was always\ndownloading the stable branch of egit.git, even though it has not\nchanged in many weeks.\n\nSigned-off-by: Shawn O. Pearce <spearce@spearce.org>\n---\n .../src/org/spearce/jgit/lib/RefDatabase.java      |    2 ++\n 1 files changed, 2 insertions(+), 0 deletions(-)\n\ndiff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java b/org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java\nindex 82b995e..98c365e 100644\n--- a/org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java\n+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/RefDatabase.java\n@@ -115,6 +115,7 @@ class RefDatabase {\n \t}\n \n \tObjectId idOf(final String name) throws IOException {\n+\t\trefreshPackedRefs();\n \t\tfinal Ref r = readRefBasic(name, 0);\n \t\treturn r != null ? r.getObjectId() : null;\n \t}\n@@ -132,6 +133,7 @@ class RefDatabase {\n \t *             to the base ref, as the symbolic ref could not be read.\n \t */\n \tRefUpdate newUpdate(final String name) throws IOException {\n+\t\trefreshPackedRefs();\n \t\tRef r = readRefBasic(name, 0);\n \t\tif (r == null)\n \t\t\tr = new Ref(Ref.Storage.NEW, name, null);\n-- \n1.6.0.rc0.182.gb96c7\n"},{"id":"85141","messageId":"1217133221-15513-2-git-send-email-spearce@spearce.org","threadId":"14701","inReplyTo":"1217133221-15513-1-git-send-email-spearce@spearce.org","subject":"[JGIT PATCH 2/2] Teach fetch command line a --verbose/-v switch for unchanged refs","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2008-07-27T04:33:41Z","receivedAt":"2008-07-27T04:33:41Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"We normally don't want to know about unchanged refs, as these\nare not very interesting.  We now skip showing them by default\nand only produce an output line for unchanged refs if -v is\ngiven to us on the command line.\n\nSigned-off-by: Shawn O. Pearce <spearce@spearce.org>\n---\n .../src/org/spearce/jgit/pgm/Fetch.java            |   18 +++++++++++++++---\n 1 files changed, 15 insertions(+), 3 deletions(-)\n\ndiff --git a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/Fetch.java b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/Fetch.java\nindex 194f669..84b5258 100644\n--- a/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/Fetch.java\n+++ b/org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/Fetch.java\n@@ -40,6 +40,7 @@ package org.spearce.jgit.pgm;\n import java.util.List;\n \n import org.kohsuke.args4j.Argument;\n+import org.kohsuke.args4j.Option;\n import org.spearce.jgit.lib.RefUpdate;\n import org.spearce.jgit.lib.TextProgressMonitor;\n import org.spearce.jgit.transport.FetchResult;\n@@ -48,6 +49,9 @@ import org.spearce.jgit.transport.TrackingRefUpdate;\n import org.spearce.jgit.transport.Transport;\n \n class Fetch extends TextBuiltin {\n+\t@Option(name = \"--verbose\", aliases = { \"-v\" }, usage = \"be more verbose\")\n+\tprivate boolean verbose;\n+\n \t@Argument(index = 0, metaVar = \"uri-ish\")\n \tprivate String remote = \"origin\";\n \n@@ -66,15 +70,23 @@ class Fetch extends TextBuiltin {\n \t\t\ttn.close();\n \t\t}\n \n-\t\tout.print(\"From \");\n-\t\tout.print(tn.getURI());\n-\t\tout.println();\n+\t\tboolean shownURI = false;\n \t\tfor (final TrackingRefUpdate u : r.getTrackingRefUpdates()) {\n+\t\t\tif (!verbose && u.getResult() == RefUpdate.Result.NO_CHANGE)\n+\t\t\t\tcontinue;\n+\n \t\t\tfinal char type = shortTypeOf(u.getResult());\n \t\t\tfinal String longType = longTypeOf(u);\n \t\t\tfinal String src = abbreviateRef(u.getRemoteName(), false);\n \t\t\tfinal String dst = abbreviateRef(u.getLocalName(), true);\n \n+\t\t\tif (!shownURI) {\n+\t\t\t\tout.print(\"From \");\n+\t\t\t\tout.print(tn.getURI());\n+\t\t\t\tout.println();\n+\t\t\t\tshownURI = true;\n+\t\t\t}\n+\n \t\t\tout.format(\" %c %-17s %-10s -> %s\", type, longType, src, dst);\n \t\t\tout.println();\n \t\t}\n-- \n1.6.0.rc0.182.gb96c7\n"}]}