{"thread":{"id":"19305","subject":"[JGIT PATCH] Rename test classes to match same pattern","startedAt":"2009-05-11T23:00:14Z","lastAt":"2009-05-11T23:00:14Z","messageCount":1,"participants":["Sohn, Matthias"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"113602","messageId":"366BBB1215D0AB4B8A153AF047A287800310A8C6@dewdfe18.wdf.sap.corp","threadId":"19305","inReplyTo":null,"subject":"[JGIT PATCH] Rename test classes to match same pattern","fromName":"Sohn, Matthias","fromEmail":"matthias.sohn@sap.com","sentAt":"2009-05-11T23:00:14Z","receivedAt":"2009-05-11T23:00:14Z","isPatch":true,"sender":{"key":"matthias.sohn@sap.com","avatar":"https://gravatar.com/avatar/88bbb2733bcb977ec2d2cc1916ba8a70d6d41432c146bb8dab4f7f802261194e?d=mp&s=160"},"body":"From: Matthias Sohn <matthias.sohn@sap.com>\nFixing bug 75 (http://code.google.com/p/egit/issues/detail?id=75). If \nall concrete test classes follow class name pattern **/*Test.java and \nall abstract test classes **/*TestCase.java it is easier to run tests\nwith ant.\n\nSigned-off-by: Matthias Sohn <matthias.sohn@sap.com>\n---\n .../tst/org/spearce/jgit/lib/PackIndexTest.java    |  162 ------------\n .../org/spearce/jgit/lib/PackIndexTestCase.java    |  162 ++++++++++++\n .../tst/org/spearce/jgit/lib/PackIndexV1Test.java  |    2 +-\n .../tst/org/spearce/jgit/lib/PackIndexV2Test.java  |    2 +-\n .../org/spearce/jgit/transport/RefSpecTest.java    |  269 ++++++++++++++++++++\n .../spearce/jgit/transport/RefSpecTestCase.java    |  269 --------------------\n 6 files changed, 433 insertions(+), 433 deletions(-)\n delete mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java\n create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTestCase.java\n create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/transport/RefSpecTest.java\n delete mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/transport/RefSpecTestCase.java\n\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java\ndeleted file mode 100644\nindex 7163718..0000000\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTest.java\n+++ /dev/null\n@@ -1,162 +0,0 @@\n-/*\n- * Copyright (C) 2008, Marek Zawirski <marek.zawirski@gmail.com>\n- *\n- * All rights reserved.\n- *\n- * Redistribution and use in source and binary forms, with or\n- * without modification, are permitted provided that the following\n- * conditions are met:\n- *\n- * - Redistributions of source code must retain the above copyright\n- *   notice, this list of conditions and the following disclaimer.\n- *\n- * - Redistributions in binary form must reproduce the above\n- *   copyright notice, this list of conditions and the following\n- *   disclaimer in the documentation and/or other materials provided\n- *   with the distribution.\n- *\n- * - Neither the name of the Git Development Community nor the\n- *   names of its contributors may be used to endorse or promote\n- *   products derived from this software without specific prior\n- *   written permission.\n- *\n- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\n- * CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\n- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n- */\n-\n-package org.spearce.jgit.lib;\n-\n-import java.io.File;\n-import java.util.Iterator;\n-import java.util.NoSuchElementException;\n-\n-import org.spearce.jgit.errors.MissingObjectException;\n-import org.spearce.jgit.lib.PackIndex.MutableEntry;\n-\n-public abstract class PackIndexTest extends RepositoryTestCase {\n-\n-\tPackIndex smallIdx;\n-\n-\tPackIndex denseIdx;\n-\n-\tpublic void setUp() throws Exception {\n-\t\tsuper.setUp();\n-\t\tsmallIdx = PackIndex.open(getFileForPack34be9032());\n-\t\tdenseIdx = PackIndex.open(getFileForPackdf2982f28());\n-\t}\n-\n-\t/**\n-\t * Return file with appropriate index version for prepared pack.\n-\t * \n-\t * @return file with index\n-\t */\n-\tpublic abstract File getFileForPack34be9032();\n-\n-\t/**\n-\t * Return file with appropriate index version for prepared pack.\n-\t * \n-\t * @return file with index\n-\t */\n-\tpublic abstract File getFileForPackdf2982f28();\n-\n-\t/**\n-\t * Verify CRC32 support.\n-\t *\n-\t * @throws MissingObjectException\n-\t * @throws UnsupportedOperationException\n-\t */\n-\tpublic abstract void testCRC32() throws MissingObjectException,\n-\t\t\tUnsupportedOperationException;\n-\n-\t/**\n-\t * Test contracts of Iterator methods and this implementation remove()\n-\t * limitations.\n-\t */\n-\tpublic void testIteratorMethodsContract() {\n-\t\tIterator<PackIndex.MutableEntry> iter = smallIdx.iterator();\n-\t\twhile (iter.hasNext()) {\n-\t\t\titer.next();\n-\t\t}\n-\n-\t\ttry {\n-\t\t\titer.next();\n-\t\t\tfail(\"next() unexpectedly returned element\");\n-\t\t} catch (NoSuchElementException x) {\n-\t\t\t// expected\n-\t\t}\n-\n-\t\ttry {\n-\t\t\titer.remove();\n-\t\t\tfail(\"remove() shouldn't be implemented\");\n-\t\t} catch (UnsupportedOperationException x) {\n-\t\t\t// expected\n-\t\t}\n-\t}\n-\n-\t/**\n-\t * Test results of iterator comparing to content of well-known (prepared)\n-\t * small index.\n-\t */\n-\tpublic void testIteratorReturnedValues1() {\n-\t\tIterator<PackIndex.MutableEntry> iter = smallIdx.iterator();\n-\t\tassertEquals(\"4b825dc642cb6eb9a060e54bf8d69288fbee4904\", iter.next()\n-\t\t\t\t.name());\n-\t\tassertEquals(\"540a36d136cf413e4b064c2b0e0a4db60f77feab\", iter.next()\n-\t\t\t\t.name());\n-\t\tassertEquals(\"5b6e7c66c276e7610d4a73c70ec1a1f7c1003259\", iter.next()\n-\t\t\t\t.name());\n-\t\tassertEquals(\"6ff87c4664981e4397625791c8ea3bbb5f2279a3\", iter.next()\n-\t\t\t\t.name());\n-\t\tassertEquals(\"82c6b885ff600be425b4ea96dee75dca255b69e7\", iter.next()\n-\t\t\t\t.name());\n-\t\tassertEquals(\"902d5476fa249b7abc9d84c611577a81381f0327\", iter.next()\n-\t\t\t\t.name());\n-\t\tassertEquals(\"aabf2ffaec9b497f0950352b3e582d73035c2035\", iter.next()\n-\t\t\t\t.name());\n-\t\tassertEquals(\"c59759f143fb1fe21c197981df75a7ee00290799\", iter.next()\n-\t\t\t\t.name());\n-\t\tassertFalse(iter.hasNext());\n-\t}\n-\n-\t/**\n-\t * Compare offset from iterator entries with output of findOffset() method.\n-\t */\n-\tpublic void testCompareEntriesOffsetsWithFindOffsets() {\n-\t\tfor (MutableEntry me : smallIdx) {\n-\t\t\tassertEquals(smallIdx.findOffset(me.toObjectId()), me.getOffset());\n-\t\t}\n-\t\tfor (MutableEntry me : denseIdx) {\n-\t\t\tassertEquals(denseIdx.findOffset(me.toObjectId()), me.getOffset());\n-\t\t}\n-\t}\n-\n-\t/**\n-\t * Test partial results of iterator comparing to content of well-known\n-\t * (prepared) dense index, that may need multi-level indexing.\n-\t */\n-\tpublic void testIteratorReturnedValues2() {\n-\t\tIterator<PackIndex.MutableEntry> iter = denseIdx.iterator();\n-\t\twhile (!iter.next().name().equals(\n-\t\t\t\t\"0a3d7772488b6b106fb62813c4d6d627918d9181\")) {\n-\t\t\t// just iterating\n-\t\t}\n-\t\tassertEquals(\"1004d0d7ac26fbf63050a234c9b88a46075719d3\", iter.next()\n-\t\t\t\t.name()); // same level-1\n-\t\tassertEquals(\"10da5895682013006950e7da534b705252b03be6\", iter.next()\n-\t\t\t\t.name()); // same level-1\n-\t\tassertEquals(\"1203b03dc816ccbb67773f28b3c19318654b0bc8\", iter.next()\n-\t\t\t\t.name());\n-\t}\n-\n-}\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTestCase.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTestCase.java\nnew file mode 100644\nindex 0000000..cd69375\n--- /dev/null\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexTestCase.java\n@@ -0,0 +1,162 @@\n+/*\n+ * Copyright (C) 2008, Marek Zawirski <marek.zawirski@gmail.com>\n+ *\n+ * All rights reserved.\n+ *\n+ * Redistribution and use in source and binary forms, with or\n+ * without modification, are permitted provided that the following\n+ * conditions are met:\n+ *\n+ * - Redistributions of source code must retain the above copyright\n+ *   notice, this list of conditions and the following disclaimer.\n+ *\n+ * - Redistributions in binary form must reproduce the above\n+ *   copyright notice, this list of conditions and the following\n+ *   disclaimer in the documentation and/or other materials provided\n+ *   with the distribution.\n+ *\n+ * - Neither the name of the Git Development Community nor the\n+ *   names of its contributors may be used to endorse or promote\n+ *   products derived from this software without specific prior\n+ *   written permission.\n+ *\n+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\n+ * CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\n+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+ */\n+\n+package org.spearce.jgit.lib;\n+\n+import java.io.File;\n+import java.util.Iterator;\n+import java.util.NoSuchElementException;\n+\n+import org.spearce.jgit.errors.MissingObjectException;\n+import org.spearce.jgit.lib.PackIndex.MutableEntry;\n+\n+public abstract class PackIndexTestCase extends RepositoryTestCase {\n+\n+\tPackIndex smallIdx;\n+\n+\tPackIndex denseIdx;\n+\n+\tpublic void setUp() throws Exception {\n+\t\tsuper.setUp();\n+\t\tsmallIdx = PackIndex.open(getFileForPack34be9032());\n+\t\tdenseIdx = PackIndex.open(getFileForPackdf2982f28());\n+\t}\n+\n+\t/**\n+\t * Return file with appropriate index version for prepared pack.\n+\t * \n+\t * @return file with index\n+\t */\n+\tpublic abstract File getFileForPack34be9032();\n+\n+\t/**\n+\t * Return file with appropriate index version for prepared pack.\n+\t * \n+\t * @return file with index\n+\t */\n+\tpublic abstract File getFileForPackdf2982f28();\n+\n+\t/**\n+\t * Verify CRC32 support.\n+\t *\n+\t * @throws MissingObjectException\n+\t * @throws UnsupportedOperationException\n+\t */\n+\tpublic abstract void testCRC32() throws MissingObjectException,\n+\t\t\tUnsupportedOperationException;\n+\n+\t/**\n+\t * Test contracts of Iterator methods and this implementation remove()\n+\t * limitations.\n+\t */\n+\tpublic void testIteratorMethodsContract() {\n+\t\tIterator<PackIndex.MutableEntry> iter = smallIdx.iterator();\n+\t\twhile (iter.hasNext()) {\n+\t\t\titer.next();\n+\t\t}\n+\n+\t\ttry {\n+\t\t\titer.next();\n+\t\t\tfail(\"next() unexpectedly returned element\");\n+\t\t} catch (NoSuchElementException x) {\n+\t\t\t// expected\n+\t\t}\n+\n+\t\ttry {\n+\t\t\titer.remove();\n+\t\t\tfail(\"remove() shouldn't be implemented\");\n+\t\t} catch (UnsupportedOperationException x) {\n+\t\t\t// expected\n+\t\t}\n+\t}\n+\n+\t/**\n+\t * Test results of iterator comparing to content of well-known (prepared)\n+\t * small index.\n+\t */\n+\tpublic void testIteratorReturnedValues1() {\n+\t\tIterator<PackIndex.MutableEntry> iter = smallIdx.iterator();\n+\t\tassertEquals(\"4b825dc642cb6eb9a060e54bf8d69288fbee4904\", iter.next()\n+\t\t\t\t.name());\n+\t\tassertEquals(\"540a36d136cf413e4b064c2b0e0a4db60f77feab\", iter.next()\n+\t\t\t\t.name());\n+\t\tassertEquals(\"5b6e7c66c276e7610d4a73c70ec1a1f7c1003259\", iter.next()\n+\t\t\t\t.name());\n+\t\tassertEquals(\"6ff87c4664981e4397625791c8ea3bbb5f2279a3\", iter.next()\n+\t\t\t\t.name());\n+\t\tassertEquals(\"82c6b885ff600be425b4ea96dee75dca255b69e7\", iter.next()\n+\t\t\t\t.name());\n+\t\tassertEquals(\"902d5476fa249b7abc9d84c611577a81381f0327\", iter.next()\n+\t\t\t\t.name());\n+\t\tassertEquals(\"aabf2ffaec9b497f0950352b3e582d73035c2035\", iter.next()\n+\t\t\t\t.name());\n+\t\tassertEquals(\"c59759f143fb1fe21c197981df75a7ee00290799\", iter.next()\n+\t\t\t\t.name());\n+\t\tassertFalse(iter.hasNext());\n+\t}\n+\n+\t/**\n+\t * Compare offset from iterator entries with output of findOffset() method.\n+\t */\n+\tpublic void testCompareEntriesOffsetsWithFindOffsets() {\n+\t\tfor (MutableEntry me : smallIdx) {\n+\t\t\tassertEquals(smallIdx.findOffset(me.toObjectId()), me.getOffset());\n+\t\t}\n+\t\tfor (MutableEntry me : denseIdx) {\n+\t\t\tassertEquals(denseIdx.findOffset(me.toObjectId()), me.getOffset());\n+\t\t}\n+\t}\n+\n+\t/**\n+\t * Test partial results of iterator comparing to content of well-known\n+\t * (prepared) dense index, that may need multi-level indexing.\n+\t */\n+\tpublic void testIteratorReturnedValues2() {\n+\t\tIterator<PackIndex.MutableEntry> iter = denseIdx.iterator();\n+\t\twhile (!iter.next().name().equals(\n+\t\t\t\t\"0a3d7772488b6b106fb62813c4d6d627918d9181\")) {\n+\t\t\t// just iterating\n+\t\t}\n+\t\tassertEquals(\"1004d0d7ac26fbf63050a234c9b88a46075719d3\", iter.next()\n+\t\t\t\t.name()); // same level-1\n+\t\tassertEquals(\"10da5895682013006950e7da534b705252b03be6\", iter.next()\n+\t\t\t\t.name()); // same level-1\n+\t\tassertEquals(\"1203b03dc816ccbb67773f28b3c19318654b0bc8\", iter.next()\n+\t\t\t\t.name());\n+\t}\n+\n+}\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexV1Test.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexV1Test.java\nindex 645e054..20290aa 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexV1Test.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexV1Test.java\n@@ -42,7 +42,7 @@\n import org.spearce.jgit.errors.MissingObjectException;\n import org.spearce.jgit.util.JGitTestUtil;\n \n-public class PackIndexV1Test extends PackIndexTest {\n+public class PackIndexV1Test extends PackIndexTestCase {\n \t@Override\n \tpublic File getFileForPack34be9032() {\n \t\treturn JGitTestUtil.getTestResourceFile(\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexV2Test.java b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexV2Test.java\nindex d95937c..beed522 100644\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexV2Test.java\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/lib/PackIndexV2Test.java\n@@ -42,7 +42,7 @@\n import org.spearce.jgit.errors.MissingObjectException;\n import org.spearce.jgit.util.JGitTestUtil;\n \n-public class PackIndexV2Test extends PackIndexTest {\n+public class PackIndexV2Test extends PackIndexTestCase {\n \t@Override\n \tpublic File getFileForPack34be9032() {\n \t\treturn JGitTestUtil.getTestResourceFile(\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/transport/RefSpecTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/transport/RefSpecTest.java\nnew file mode 100644\nindex 0000000..e8b54fa\n--- /dev/null\n+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/transport/RefSpecTest.java\n@@ -0,0 +1,269 @@\n+/*\n+ * Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dewire.com>\n+ * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n+ *\n+ * All rights reserved.\n+ *\n+ * Redistribution and use in source and binary forms, with or\n+ * without modification, are permitted provided that the following\n+ * conditions are met:\n+ *\n+ * - Redistributions of source code must retain the above copyright\n+ *   notice, this list of conditions and the following disclaimer.\n+ *\n+ * - Redistributions in binary form must reproduce the above\n+ *   copyright notice, this list of conditions and the following\n+ *   disclaimer in the documentation and/or other materials provided\n+ *   with the distribution.\n+ *\n+ * - Neither the name of the Git Development Community nor the\n+ *   names of its contributors may be used to endorse or promote\n+ *   products derived from this software without specific prior\n+ *   written permission.\n+ *\n+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\n+ * CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\n+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+ */\n+\n+package org.spearce.jgit.transport;\n+\n+import junit.framework.TestCase;\n+\n+import org.spearce.jgit.lib.Ref;\n+\n+public class RefSpecTest extends TestCase {\n+\tpublic void testMasterMaster() {\n+\t\tfinal String sn = \"refs/heads/master\";\n+\t\tfinal RefSpec rs = new RefSpec(sn + \":\" + sn);\n+\t\tassertFalse(rs.isForceUpdate());\n+\t\tassertFalse(rs.isWildcard());\n+\t\tassertEquals(sn, rs.getSource());\n+\t\tassertEquals(sn, rs.getDestination());\n+\t\tassertEquals(sn + \":\" + sn, rs.toString());\n+\t\tassertEquals(rs, new RefSpec(rs.toString()));\n+\n+\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n+\t\tassertTrue(rs.matchSource(r));\n+\t\tassertTrue(rs.matchDestination(r));\n+\t\tassertSame(rs, rs.expandFromSource(r));\n+\n+\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n+\t\tassertFalse(rs.matchSource(r));\n+\t\tassertFalse(rs.matchDestination(r));\n+\t}\n+\n+\tpublic void testSplitLastColon() {\n+\t\tfinal String lhs = \":m:a:i:n:t\";\n+\t\tfinal String rhs = \"refs/heads/maint\";\n+\t\tfinal RefSpec rs = new RefSpec(lhs + \":\" + rhs);\n+\t\tassertFalse(rs.isForceUpdate());\n+\t\tassertFalse(rs.isWildcard());\n+\t\tassertEquals(lhs, rs.getSource());\n+\t\tassertEquals(rhs, rs.getDestination());\n+\t\tassertEquals(lhs + \":\" + rhs, rs.toString());\n+\t\tassertEquals(rs, new RefSpec(rs.toString()));\n+\t}\n+\n+\tpublic void testForceMasterMaster() {\n+\t\tfinal String sn = \"refs/heads/master\";\n+\t\tfinal RefSpec rs = new RefSpec(\"+\" + sn + \":\" + sn);\n+\t\tassertTrue(rs.isForceUpdate());\n+\t\tassertFalse(rs.isWildcard());\n+\t\tassertEquals(sn, rs.getSource());\n+\t\tassertEquals(sn, rs.getDestination());\n+\t\tassertEquals(\"+\" + sn + \":\" + sn, rs.toString());\n+\t\tassertEquals(rs, new RefSpec(rs.toString()));\n+\n+\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n+\t\tassertTrue(rs.matchSource(r));\n+\t\tassertTrue(rs.matchDestination(r));\n+\t\tassertSame(rs, rs.expandFromSource(r));\n+\n+\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n+\t\tassertFalse(rs.matchSource(r));\n+\t\tassertFalse(rs.matchDestination(r));\n+\t}\n+\n+\tpublic void testMaster() {\n+\t\tfinal String sn = \"refs/heads/master\";\n+\t\tfinal RefSpec rs = new RefSpec(sn);\n+\t\tassertFalse(rs.isForceUpdate());\n+\t\tassertFalse(rs.isWildcard());\n+\t\tassertEquals(sn, rs.getSource());\n+\t\tassertNull(rs.getDestination());\n+\t\tassertEquals(sn, rs.toString());\n+\t\tassertEquals(rs, new RefSpec(rs.toString()));\n+\n+\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n+\t\tassertTrue(rs.matchSource(r));\n+\t\tassertFalse(rs.matchDestination(r));\n+\t\tassertSame(rs, rs.expandFromSource(r));\n+\n+\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n+\t\tassertFalse(rs.matchSource(r));\n+\t\tassertFalse(rs.matchDestination(r));\n+\t}\n+\n+\tpublic void testForceMaster() {\n+\t\tfinal String sn = \"refs/heads/master\";\n+\t\tfinal RefSpec rs = new RefSpec(\"+\" + sn);\n+\t\tassertTrue(rs.isForceUpdate());\n+\t\tassertFalse(rs.isWildcard());\n+\t\tassertEquals(sn, rs.getSource());\n+\t\tassertNull(rs.getDestination());\n+\t\tassertEquals(\"+\" + sn, rs.toString());\n+\t\tassertEquals(rs, new RefSpec(rs.toString()));\n+\n+\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n+\t\tassertTrue(rs.matchSource(r));\n+\t\tassertFalse(rs.matchDestination(r));\n+\t\tassertSame(rs, rs.expandFromSource(r));\n+\n+\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n+\t\tassertFalse(rs.matchSource(r));\n+\t\tassertFalse(rs.matchDestination(r));\n+\t}\n+\n+\tpublic void testDeleteMaster() {\n+\t\tfinal String sn = \"refs/heads/master\";\n+\t\tfinal RefSpec rs = new RefSpec(\":\" + sn);\n+\t\tassertFalse(rs.isForceUpdate());\n+\t\tassertFalse(rs.isWildcard());\n+\t\tassertNull(rs.getSource());\n+\t\tassertEquals(sn, rs.getDestination());\n+\t\tassertEquals(\":\" + sn, rs.toString());\n+\t\tassertEquals(rs, new RefSpec(rs.toString()));\n+\n+\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n+\t\tassertFalse(rs.matchSource(r));\n+\t\tassertTrue(rs.matchDestination(r));\n+\t\tassertSame(rs, rs.expandFromSource(r));\n+\n+\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n+\t\tassertFalse(rs.matchSource(r));\n+\t\tassertFalse(rs.matchDestination(r));\n+\t}\n+\n+\tpublic void testForceRemotesOrigin() {\n+\t\tfinal String srcn = \"refs/heads/*\";\n+\t\tfinal String dstn = \"refs/remotes/origin/*\";\n+\t\tfinal RefSpec rs = new RefSpec(\"+\" + srcn + \":\" + dstn);\n+\t\tassertTrue(rs.isForceUpdate());\n+\t\tassertTrue(rs.isWildcard());\n+\t\tassertEquals(srcn, rs.getSource());\n+\t\tassertEquals(dstn, rs.getDestination());\n+\t\tassertEquals(\"+\" + srcn + \":\" + dstn, rs.toString());\n+\t\tassertEquals(rs, new RefSpec(rs.toString()));\n+\n+\t\tRef r;\n+\t\tRefSpec expanded;\n+\n+\t\tr = new Ref(Ref.Storage.LOOSE, \"refs/heads/master\", null);\n+\t\tassertTrue(rs.matchSource(r));\n+\t\tassertFalse(rs.matchDestination(r));\n+\t\texpanded = rs.expandFromSource(r);\n+\t\tassertNotSame(rs, expanded);\n+\t\tassertTrue(expanded.isForceUpdate());\n+\t\tassertFalse(expanded.isWildcard());\n+\t\tassertEquals(r.getName(), expanded.getSource());\n+\t\tassertEquals(\"refs/remotes/origin/master\", expanded.getDestination());\n+\n+\t\tr = new Ref(Ref.Storage.LOOSE, \"refs/remotes/origin/next\", null);\n+\t\tassertFalse(rs.matchSource(r));\n+\t\tassertTrue(rs.matchDestination(r));\n+\n+\t\tr = new Ref(Ref.Storage.LOOSE, \"refs/tags/v1.0\", null);\n+\t\tassertFalse(rs.matchSource(r));\n+\t\tassertFalse(rs.matchDestination(r));\n+\t}\n+\n+\tpublic void testCreateEmpty() {\n+\t\tfinal RefSpec rs = new RefSpec();\n+\t\tassertFalse(rs.isForceUpdate());\n+\t\tassertFalse(rs.isWildcard());\n+\t\tassertEquals(\"HEAD\", rs.getSource());\n+\t\tassertNull(rs.getDestination());\n+\t\tassertEquals(\"HEAD\", rs.toString());\n+\t}\n+\n+\tpublic void testSetForceUpdate() {\n+\t\tfinal String s = \"refs/heads/*:refs/remotes/origin/*\";\n+\t\tfinal RefSpec a = new RefSpec(s);\n+\t\tassertFalse(a.isForceUpdate());\n+\t\tRefSpec b = a.setForceUpdate(true);\n+\t\tassertNotSame(a, b);\n+\t\tassertFalse(a.isForceUpdate());\n+\t\tassertTrue(b.isForceUpdate());\n+\t\tassertEquals(s, a.toString());\n+\t\tassertEquals(\"+\" + s, b.toString());\n+\t}\n+\n+\tpublic void testSetSource() {\n+\t\tfinal RefSpec a = new RefSpec();\n+\t\tfinal RefSpec b = a.setSource(\"refs/heads/master\");\n+\t\tassertNotSame(a, b);\n+\t\tassertEquals(\"HEAD\", a.toString());\n+\t\tassertEquals(\"refs/heads/master\", b.toString());\n+\t}\n+\n+\tpublic void testSetDestination() {\n+\t\tfinal RefSpec a = new RefSpec();\n+\t\tfinal RefSpec b = a.setDestination(\"refs/heads/master\");\n+\t\tassertNotSame(a, b);\n+\t\tassertEquals(\"HEAD\", a.toString());\n+\t\tassertEquals(\"HEAD:refs/heads/master\", b.toString());\n+\t}\n+\n+\tpublic void testSetDestination_SourceNull() {\n+\t\tfinal RefSpec a = new RefSpec();\n+\t\tRefSpec b;\n+\n+\t\tb = a.setDestination(\"refs/heads/master\");\n+\t\tb = b.setSource(null);\n+\t\tassertNotSame(a, b);\n+\t\tassertEquals(\"HEAD\", a.toString());\n+\t\tassertEquals(\":refs/heads/master\", b.toString());\n+\t}\n+\n+\tpublic void testSetSourceDestination() {\n+\t\tfinal RefSpec a = new RefSpec();\n+\t\tfinal RefSpec b;\n+\t\tb = a.setSourceDestination(\"refs/heads/*\", \"refs/remotes/origin/*\");\n+\t\tassertNotSame(a, b);\n+\t\tassertEquals(\"HEAD\", a.toString());\n+\t\tassertEquals(\"refs/heads/*:refs/remotes/origin/*\", b.toString());\n+\t}\n+\n+\tpublic void testExpandFromDestination_NonWildcard() {\n+\t\tfinal String src = \"refs/heads/master\";\n+\t\tfinal String dst = \"refs/remotes/origin/master\";\n+\t\tfinal RefSpec a = new RefSpec(src + \":\" + dst);\n+\t\tfinal RefSpec r = a.expandFromDestination(dst);\n+\t\tassertSame(a, r);\n+\t\tassertFalse(r.isWildcard());\n+\t\tassertEquals(src, r.getSource());\n+\t\tassertEquals(dst, r.getDestination());\n+\t}\n+\n+\tpublic void testExpandFromDestination_Wildcard() {\n+\t\tfinal String src = \"refs/heads/master\";\n+\t\tfinal String dst = \"refs/remotes/origin/master\";\n+\t\tfinal RefSpec a = new RefSpec(\"refs/heads/*:refs/remotes/origin/*\");\n+\t\tfinal RefSpec r = a.expandFromDestination(dst);\n+\t\tassertNotSame(a, r);\n+\t\tassertFalse(r.isWildcard());\n+\t\tassertEquals(src, r.getSource());\n+\t\tassertEquals(dst, r.getDestination());\n+\t}\n+}\ndiff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/transport/RefSpecTestCase.java b/org.spearce.jgit.test/tst/org/spearce/jgit/transport/RefSpecTestCase.java\ndeleted file mode 100644\nindex 2f7214c..0000000\n--- a/org.spearce.jgit.test/tst/org/spearce/jgit/transport/RefSpecTestCase.java\n+++ /dev/null\n@@ -1,269 +0,0 @@\n-/*\n- * Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dewire.com>\n- * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>\n- *\n- * All rights reserved.\n- *\n- * Redistribution and use in source and binary forms, with or\n- * without modification, are permitted provided that the following\n- * conditions are met:\n- *\n- * - Redistributions of source code must retain the above copyright\n- *   notice, this list of conditions and the following disclaimer.\n- *\n- * - Redistributions in binary form must reproduce the above\n- *   copyright notice, this list of conditions and the following\n- *   disclaimer in the documentation and/or other materials provided\n- *   with the distribution.\n- *\n- * - Neither the name of the Git Development Community nor the\n- *   names of its contributors may be used to endorse or promote\n- *   products derived from this software without specific prior\n- *   written permission.\n- *\n- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND\n- * CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES,\n- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\n- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n- */\n-\n-package org.spearce.jgit.transport;\n-\n-import junit.framework.TestCase;\n-\n-import org.spearce.jgit.lib.Ref;\n-\n-public class RefSpecTestCase extends TestCase {\n-\tpublic void testMasterMaster() {\n-\t\tfinal String sn = \"refs/heads/master\";\n-\t\tfinal RefSpec rs = new RefSpec(sn + \":\" + sn);\n-\t\tassertFalse(rs.isForceUpdate());\n-\t\tassertFalse(rs.isWildcard());\n-\t\tassertEquals(sn, rs.getSource());\n-\t\tassertEquals(sn, rs.getDestination());\n-\t\tassertEquals(sn + \":\" + sn, rs.toString());\n-\t\tassertEquals(rs, new RefSpec(rs.toString()));\n-\n-\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n-\t\tassertTrue(rs.matchSource(r));\n-\t\tassertTrue(rs.matchDestination(r));\n-\t\tassertSame(rs, rs.expandFromSource(r));\n-\n-\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n-\t\tassertFalse(rs.matchSource(r));\n-\t\tassertFalse(rs.matchDestination(r));\n-\t}\n-\n-\tpublic void testSplitLastColon() {\n-\t\tfinal String lhs = \":m:a:i:n:t\";\n-\t\tfinal String rhs = \"refs/heads/maint\";\n-\t\tfinal RefSpec rs = new RefSpec(lhs + \":\" + rhs);\n-\t\tassertFalse(rs.isForceUpdate());\n-\t\tassertFalse(rs.isWildcard());\n-\t\tassertEquals(lhs, rs.getSource());\n-\t\tassertEquals(rhs, rs.getDestination());\n-\t\tassertEquals(lhs + \":\" + rhs, rs.toString());\n-\t\tassertEquals(rs, new RefSpec(rs.toString()));\n-\t}\n-\n-\tpublic void testForceMasterMaster() {\n-\t\tfinal String sn = \"refs/heads/master\";\n-\t\tfinal RefSpec rs = new RefSpec(\"+\" + sn + \":\" + sn);\n-\t\tassertTrue(rs.isForceUpdate());\n-\t\tassertFalse(rs.isWildcard());\n-\t\tassertEquals(sn, rs.getSource());\n-\t\tassertEquals(sn, rs.getDestination());\n-\t\tassertEquals(\"+\" + sn + \":\" + sn, rs.toString());\n-\t\tassertEquals(rs, new RefSpec(rs.toString()));\n-\n-\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n-\t\tassertTrue(rs.matchSource(r));\n-\t\tassertTrue(rs.matchDestination(r));\n-\t\tassertSame(rs, rs.expandFromSource(r));\n-\n-\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n-\t\tassertFalse(rs.matchSource(r));\n-\t\tassertFalse(rs.matchDestination(r));\n-\t}\n-\n-\tpublic void testMaster() {\n-\t\tfinal String sn = \"refs/heads/master\";\n-\t\tfinal RefSpec rs = new RefSpec(sn);\n-\t\tassertFalse(rs.isForceUpdate());\n-\t\tassertFalse(rs.isWildcard());\n-\t\tassertEquals(sn, rs.getSource());\n-\t\tassertNull(rs.getDestination());\n-\t\tassertEquals(sn, rs.toString());\n-\t\tassertEquals(rs, new RefSpec(rs.toString()));\n-\n-\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n-\t\tassertTrue(rs.matchSource(r));\n-\t\tassertFalse(rs.matchDestination(r));\n-\t\tassertSame(rs, rs.expandFromSource(r));\n-\n-\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n-\t\tassertFalse(rs.matchSource(r));\n-\t\tassertFalse(rs.matchDestination(r));\n-\t}\n-\n-\tpublic void testForceMaster() {\n-\t\tfinal String sn = \"refs/heads/master\";\n-\t\tfinal RefSpec rs = new RefSpec(\"+\" + sn);\n-\t\tassertTrue(rs.isForceUpdate());\n-\t\tassertFalse(rs.isWildcard());\n-\t\tassertEquals(sn, rs.getSource());\n-\t\tassertNull(rs.getDestination());\n-\t\tassertEquals(\"+\" + sn, rs.toString());\n-\t\tassertEquals(rs, new RefSpec(rs.toString()));\n-\n-\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n-\t\tassertTrue(rs.matchSource(r));\n-\t\tassertFalse(rs.matchDestination(r));\n-\t\tassertSame(rs, rs.expandFromSource(r));\n-\n-\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n-\t\tassertFalse(rs.matchSource(r));\n-\t\tassertFalse(rs.matchDestination(r));\n-\t}\n-\n-\tpublic void testDeleteMaster() {\n-\t\tfinal String sn = \"refs/heads/master\";\n-\t\tfinal RefSpec rs = new RefSpec(\":\" + sn);\n-\t\tassertFalse(rs.isForceUpdate());\n-\t\tassertFalse(rs.isWildcard());\n-\t\tassertNull(rs.getSource());\n-\t\tassertEquals(sn, rs.getDestination());\n-\t\tassertEquals(\":\" + sn, rs.toString());\n-\t\tassertEquals(rs, new RefSpec(rs.toString()));\n-\n-\t\tRef r = new Ref(Ref.Storage.LOOSE, sn, null);\n-\t\tassertFalse(rs.matchSource(r));\n-\t\tassertTrue(rs.matchDestination(r));\n-\t\tassertSame(rs, rs.expandFromSource(r));\n-\n-\t\tr = new Ref(Ref.Storage.LOOSE, sn + \"-and-more\", null);\n-\t\tassertFalse(rs.matchSource(r));\n-\t\tassertFalse(rs.matchDestination(r));\n-\t}\n-\n-\tpublic void testForceRemotesOrigin() {\n-\t\tfinal String srcn = \"refs/heads/*\";\n-\t\tfinal String dstn = \"refs/remotes/origin/*\";\n-\t\tfinal RefSpec rs = new RefSpec(\"+\" + srcn + \":\" + dstn);\n-\t\tassertTrue(rs.isForceUpdate());\n-\t\tassertTrue(rs.isWildcard());\n-\t\tassertEquals(srcn, rs.getSource());\n-\t\tassertEquals(dstn, rs.getDestination());\n-\t\tassertEquals(\"+\" + srcn + \":\" + dstn, rs.toString());\n-\t\tassertEquals(rs, new RefSpec(rs.toString()));\n-\n-\t\tRef r;\n-\t\tRefSpec expanded;\n-\n-\t\tr = new Ref(Ref.Storage.LOOSE, \"refs/heads/master\", null);\n-\t\tassertTrue(rs.matchSource(r));\n-\t\tassertFalse(rs.matchDestination(r));\n-\t\texpanded = rs.expandFromSource(r);\n-\t\tassertNotSame(rs, expanded);\n-\t\tassertTrue(expanded.isForceUpdate());\n-\t\tassertFalse(expanded.isWildcard());\n-\t\tassertEquals(r.getName(), expanded.getSource());\n-\t\tassertEquals(\"refs/remotes/origin/master\", expanded.getDestination());\n-\n-\t\tr = new Ref(Ref.Storage.LOOSE, \"refs/remotes/origin/next\", null);\n-\t\tassertFalse(rs.matchSource(r));\n-\t\tassertTrue(rs.matchDestination(r));\n-\n-\t\tr = new Ref(Ref.Storage.LOOSE, \"refs/tags/v1.0\", null);\n-\t\tassertFalse(rs.matchSource(r));\n-\t\tassertFalse(rs.matchDestination(r));\n-\t}\n-\n-\tpublic void testCreateEmpty() {\n-\t\tfinal RefSpec rs = new RefSpec();\n-\t\tassertFalse(rs.isForceUpdate());\n-\t\tassertFalse(rs.isWildcard());\n-\t\tassertEquals(\"HEAD\", rs.getSource());\n-\t\tassertNull(rs.getDestination());\n-\t\tassertEquals(\"HEAD\", rs.toString());\n-\t}\n-\n-\tpublic void testSetForceUpdate() {\n-\t\tfinal String s = \"refs/heads/*:refs/remotes/origin/*\";\n-\t\tfinal RefSpec a = new RefSpec(s);\n-\t\tassertFalse(a.isForceUpdate());\n-\t\tRefSpec b = a.setForceUpdate(true);\n-\t\tassertNotSame(a, b);\n-\t\tassertFalse(a.isForceUpdate());\n-\t\tassertTrue(b.isForceUpdate());\n-\t\tassertEquals(s, a.toString());\n-\t\tassertEquals(\"+\" + s, b.toString());\n-\t}\n-\n-\tpublic void testSetSource() {\n-\t\tfinal RefSpec a = new RefSpec();\n-\t\tfinal RefSpec b = a.setSource(\"refs/heads/master\");\n-\t\tassertNotSame(a, b);\n-\t\tassertEquals(\"HEAD\", a.toString());\n-\t\tassertEquals(\"refs/heads/master\", b.toString());\n-\t}\n-\n-\tpublic void testSetDestination() {\n-\t\tfinal RefSpec a = new RefSpec();\n-\t\tfinal RefSpec b = a.setDestination(\"refs/heads/master\");\n-\t\tassertNotSame(a, b);\n-\t\tassertEquals(\"HEAD\", a.toString());\n-\t\tassertEquals(\"HEAD:refs/heads/master\", b.toString());\n-\t}\n-\n-\tpublic void testSetDestination_SourceNull() {\n-\t\tfinal RefSpec a = new RefSpec();\n-\t\tRefSpec b;\n-\n-\t\tb = a.setDestination(\"refs/heads/master\");\n-\t\tb = b.setSource(null);\n-\t\tassertNotSame(a, b);\n-\t\tassertEquals(\"HEAD\", a.toString());\n-\t\tassertEquals(\":refs/heads/master\", b.toString());\n-\t}\n-\n-\tpublic void testSetSourceDestination() {\n-\t\tfinal RefSpec a = new RefSpec();\n-\t\tfinal RefSpec b;\n-\t\tb = a.setSourceDestination(\"refs/heads/*\", \"refs/remotes/origin/*\");\n-\t\tassertNotSame(a, b);\n-\t\tassertEquals(\"HEAD\", a.toString());\n-\t\tassertEquals(\"refs/heads/*:refs/remotes/origin/*\", b.toString());\n-\t}\n-\n-\tpublic void testExpandFromDestination_NonWildcard() {\n-\t\tfinal String src = \"refs/heads/master\";\n-\t\tfinal String dst = \"refs/remotes/origin/master\";\n-\t\tfinal RefSpec a = new RefSpec(src + \":\" + dst);\n-\t\tfinal RefSpec r = a.expandFromDestination(dst);\n-\t\tassertSame(a, r);\n-\t\tassertFalse(r.isWildcard());\n-\t\tassertEquals(src, r.getSource());\n-\t\tassertEquals(dst, r.getDestination());\n-\t}\n-\n-\tpublic void testExpandFromDestination_Wildcard() {\n-\t\tfinal String src = \"refs/heads/master\";\n-\t\tfinal String dst = \"refs/remotes/origin/master\";\n-\t\tfinal RefSpec a = new RefSpec(\"refs/heads/*:refs/remotes/origin/*\");\n-\t\tfinal RefSpec r = a.expandFromDestination(dst);\n-\t\tassertNotSame(a, r);\n-\t\tassertFalse(r.isWildcard());\n-\t\tassertEquals(src, r.getSource());\n-\t\tassertEquals(dst, r.getDestination());\n-\t}\n-}\n-- \n1.6.3.msysgit.0\n\n"}]}