{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "chem-bla-ics",
  "description": "Chemblaics (pronounced chem-bla-ics) is the science that uses open science and computers to solve problems in chemistry, biochemistry and related fields.",
  "home_page_url": "https://chem-bla-ics.linkedchemistry.info/",
  "feed_url": "https://chem-bla-ics.linkedchemistry.info/2007/10/31/offline-cdk-development-using-git-svn.json",
  "icon": "https://chem-bla-ics.linkedchemistry.info/assets/images/chem-bla-ics_logo.png",
  "language": "en",
  "authors": [
    {
      "name": "Egon Willighagen",
      "url": "https://orcid.org/0000-0001-7542-0286",
      "_orcid": "0000-0001-7542-0286"
    }
  ],
  "items": [

    {
      "id": "https://doi.org/10.59350/fvbts-sc941",
      "url": "https://chem-bla-ics.linkedchemistry.info/2007/10/31/offline-cdk-development-using-git-svn.html",
      "title": "Offline CDK development using git-svn",
      "content_html": "<p>While <a href=\"http://subversion.tigris.org/\">Subversion</a> is a signification improvement over <a href=\"http://www.nongnu.org/cvs/\">CVS</a>, they both require a\ncentral server. That is, they do not allow me to commit changes when I am not connected to that server. This is annoying when being on a\nlong train ride, or somewhere else without internet connectivity. I can pile up all my changes, but that would yield one big ugly patch.</p>\n\n<p>Therefore, I tried <a href=\"http://www.selenic.com/mercurial/wiki/\">Mercurial</a> where each client is server too. The version I used, however, did\nnot have the move command, so it put me back into the old CVS days where I lost the history of a file when I reorganize my archive.</p>\n\n<h2 id=\"git\">Git</h2>\n\n<p>Then <a href=\"http://git.or.cz/\">Git</a>, the version control system developed by <a href=\"http://en.wikipedia.org/wiki/Linus_Torvalds\">Linus Torvalds</a> when he\nfound that existing tools did not do what he wanted to do. It seems a rather good product, though with a somewhat larger learning curve,\nbecause of the far more flexible architecture (see <a href=\"http://www.kernel.org/pub/software/scm/git/docs/tutorial.html\">this tutorial</a>).\nWell, <a href=\"http://kernel.org/doc/local/git-quick.html\">it works for the Linux kernel</a>, so must be good :)</p>\n\n<p>Now, <a href=\"http://www.sf.net/\">SourceForge</a> does not have Git support yet, so we use Subversion. <a href=\"http://www.flavio.castelli.name/\">Flavio</a>,\nof <a href=\"http://strigi.sf.net/\">Strigi</a> fame, however, <a href=\"http://www.flavio.castelli.name/howto_use_git_with_svn\">introduced me to git-svn</a>.\nAlmost two month ago, already, but finally made some time to try it out. I think I like it.</p>\n\n<p>This is what I did to make <a href=\"http://cdk.svn.sourceforge.net/viewvc/cdk/trunk/cdk/.classpath?r1=8523&amp;r2=9271\">a commit to CDKs SVN repository</a>:</p>\n\n<div class=\"language-shell highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"nv\">$ </span><span class=\"nb\">sudo </span>aptitude <span class=\"nb\">install </span>git-svn git-core\n<span class=\"nv\">$ </span><span class=\"nb\">mkdir</span> <span class=\"nt\">-p</span> git-svn/cdk-trunk\n<span class=\"nv\">$ </span><span class=\"nb\">cd </span>git-svn/cdk-trunk\n<span class=\"nv\">$ </span>git-svn init https://cdk.svn.sourceforge.net/svnroot/cdk/trunk/cdk\n<span class=\"nv\">$ </span>git-svn fetch <span class=\"nt\">-rHEAD</span>\n<span class=\"nv\">$ </span>nano .classpath\n<span class=\"nv\">$ </span>git add .classpath\n<span class=\"nv\">$ </span>git commit\n<span class=\"nv\">$ </span>git-svn dcommit\n</code></pre></div></div>\n\n<p>The first git-svn command initializes a log Git repository based on the SVN repository. The <code class=\"language-plaintext highlighter-rouge\">git-svn fetch</code> command makes a local copy of\nthe SVN repository content defined in the previous command. Local changes are, by default, not commited; unless one explicitly git adds\nthem to a patch. Once a patch is ready you can do all sorts of interesting things with them, among with commit them to the local Git\nrepository with <code class=\"language-plaintext highlighter-rouge\">git commit</code>.</p>\n\n<p>Now, these kind of commits are on the local repository, and I do not require internet access for that. When I am connected again, I can\nsynchronize my local changes with the SVN repository with the <code class=\"language-plaintext highlighter-rouge\">git-svn dcommit</code> command.</p>\n\n<p>A final important command is <code class=\"language-plaintext highlighter-rouge\">git-svn rebase</code>, which is used to update the local git command for changes others made to the SVN repository.</p>",
      "summary": "While Subversion is a signification improvement over CVS, they both require a central server. That is, they do not allow me to commit changes when I am not connected to that server. This is annoying when being on a long train ride, or somewhere else without internet connectivity. I can pile up all my changes, but that would yield one big ugly patch.",
      
      "date_published": "2007-10-31T00:00:00+00:00",
      "date_modified": "2007-10-31T00:00:00+00:00",
      "tags": ["git","svn","cdk"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
