<div dir="ltr">I don&#39;t see huge issue with bi-directional sync actually apart from finding which commits are to be copied over.<div><br></div><div>Now, it&#39;s easy to apply patch form blender onto cycles repository for as long changes are only made to cycles core. In this case you can do something like:</div><div><br></div><div>- in blender folder: git format-patch -1 90f3102f9c3ee8f6360d24e6ed47f4e9d028c976</div><div>  this would create a patch file for the specified commit, in this example it&#39;ll be 0001-Cycles-Standalone-Updates-for-Volume-sampling.patch</div><div>- in cycles folder: git am -3 -p 3 --directory src 0001-Cycles-Standalone-Updates-for-Volume-sampling.patch</div><div>  well, it&#39;s really obvious isn&#39;t it :) here&#39;s a bit of explanation what happens:</div><div><br></div><div>`git am` applies a series of patches generated with format-patch as a commits</div><div>`-3` means fallback to a 3-way merge. Don&#39;t really want to go into details about what exactly it means, but roughly speaking if the patch fails to apply cleanly smarter patch merge algorithm is being used then</div><div>`-p 3` equal to argument in patch command, it omits 3 top directories level in the file paths in the patch (in this case it&#39;ll mean a/intern/cycles will be stripped from the paths in the patch)</div><div>`-- directory src` prepends &quot;src/&quot; to the paths in the files from the patch (which makes paths looking like a/src/app/cycles_xml in the example above).</div><div><br></div><div>The same trick would be possible to apply patches from cycles to blender, would just be something like `-p 2 --directory intern/cycles`.</div><div><br></div><div>After commit you might also want to amend the commit message, i.e. to avoid having &quot;Cycles: &quot; prefix in patch subject when committing stuff to cycles repository.</div><div><br></div><div>And one more thing, if the patch touches several areas (i.e. changes inter/cycles and source/blender) you can simply edit the patch file and drop changes in there which touches files outside of the cycles core.</div><div><br></div><div>Tonight was working in a py script to scan both repositories and detect all the commits automatically and cross-commit them to both repos if they don&#39;t have those changes. Didn&#39;t really finish it yet but will publish it as soon as it&#39;s done.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 17, 2014 at 12:07 AM, Thomas Dinges <span dir="ltr">&lt;<a href="mailto:blender@dingto.org" target="_blank">blender@dingto.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Hey,<br>
      just tested the repo on Windows, CMake configuration and build was
      running fine out of the box. Great work!<br>
      <br>
      I would be interested to know, how we handle the syncing. Shall
      all commits still go to main Blender Cycles, and then ported
      (how?) to the standalone repo?<br>
      What about changes, that only affect the standalone code, if I
      change something there and test with the standalone repo?<br>
      <br>
      Although I think we should stick to a one way direction (Blender
      Repo -&gt; Cycles Repo). <br><span class="">
      <br>
      Best regards,<br>
      Thomas<br>
      <br>
      Am 15.11.2014 um 16:54 schrieb Sergey Sharybin:<br>
    </span></div>
    <blockquote type="cite">
      <div dir="ltr">Hi,
        <div><div class="h5"><div><br>
        </div>
        <div>Last few evenings i&#39;ve been working on making a dedicated
          repository for Cycles renderer and at this point it seems to
          be ready for public access now, even though some more work is
          required.</div>
        <div><br>
        </div>
        <div>= Motivation =</div>
        <div><br>
        </div>
        <div>Main motivation of creating standalone repository for
          Cycles is to simplify access for new developers who wants to
          hack into Cycles code but don&#39;t want to bother cloning the
          whole Blender repository and setting up environment for
          blender compilation.</div>
        <div><br>
        </div>
        <div>It was kind of possible to only compile Cycles from Blender
          repository as well, but that process was really tedious.</div>
        <div><br>
        </div>
        <div>= What repository contains =</div>
        <div><br>
        </div>
        <div>Repository contains the full history of Cycles, starting
          from the original commit to the Blender SVN. This means it&#39;s
          possible to track down every change in the sources. The only
          thing here is that it&#39;s not possible to compile old sources.
          This is because build system for standalone repository was
          added just now and trying to put it somewhere in the past was
          rather tricky.</div>
        <div><br>
        </div>
        <div>Sources are mainly a direct dump from Blender, so it
          shouldn&#39;t be difficult to keep Cycles in Blender and
          standalone repositories in sync. There are a bit of changes to
          build system which we&#39;ll need to backport to blender (namely
          CMake variables name convention).</div>
        <div><br>
        </div>
        <div>Repository contains README file which describes how to
          compile Cycles. Compilation is so called &quot;works for me&quot;, so
          more tweaks are likely needed before compilation becomes
          flawless for everyone.</div>
        <div><br>
        </div>
        <div>*NOTE*: Windows is not supported atm! It&#39;s because of some
          dependencies which are not so clear to get. Mainly OpenGL,
          GLUT and GLEW. Don&#39;t worry, we will support Windows
          eventually, we just need to start from something!</div>
        <div><br>
        </div>
        <div>The repository also contains folder with .xml examples, so
          it&#39;s really easy to test render engine just after compilation.</div>
        <div><br>
        </div>
        <div>= Build system =</div>
        <div><br>
        </div>
        <div>Currently CMake is used as a build system, and likely it&#39;ll
          be it,</div>
        <div><br>
        </div>
        <div>= Where the repository is =</div>
        <div><br>
        </div>
        <div>It is on our server, read-only access is</div>
        <div><br>
        </div>
        <div>  git clone <a>git://</a><a href="http://git.blender.org/cycles.git" target="_blank">git.blender.org/cycles.git</a><br>
        </div>
        <div><br>
        </div>
        <div>for write access (needs SSH key and you need to be a
          developer of the project)</div>
        <div><br>
        </div>
        <div>  git clone <a href="mailto:git@git.blender.org:cycles.git" target="_blank">git@git.blender.org:cycles.git</a><br>
        </div>
        <div><br>
        </div>
        <div>To browse repository online please visit:</div>
        <div><br>
        </div>
        <div>  <a href="https://developer.blender.org/diffusion/C/" target="_blank">https://developer.blender.org/diffusion/C/</a></div>
        <div><br>
        </div>
        <div>= Authors =</div>
        <div><br>
        </div>
        <div>The repository contains the file with everyone who
          contributed to Cycles. This is somewhat common for all open
          source projects to have such a file.</div>
        <div><br>
        </div>
        <div>Currently this file contains authors of commits, so if
          someone submitted patch which was committed by someone else
          please let me know -- that&#39;d be easier than reading all the
          commit messages searching for such information.</div>
        <div><br>
        </div>
        <div>= Synchronization with Blender =</div>
        <div><br>
        </div>
        <div>Ideally we&#39;ll need to have some automated way to sync
          changes between Blender and Cycles, but it is not done yet.
          Exact way how to keep things in sync i&#39;ll publish later.</div>
        <div><br>
        </div>
        <div>For now we can do manual synchronization, which is not THAT
          bad.</div>
        <div><br>
        </div>
        <div>= Known TODOs =</div>
        <div><br>
        </div>
        <div>
          <div>- Windows build is not supported at this moment.</div>
          <div>- Logging option is exposed as an option but wouldn&#39;t
            work now.</div>
          <div>- Installation target is not tested and would need more
            work.</div>
          <div>- Compiled .oso files are not put to the final location,
            so manual copy is required for now.</div>
        </div>
        <div>
          <div>- Set up mailing list for commits (if we need one?)</div>
          <div><br>
          </div>
          <div>I&#39;m pretty much sure i forgot to put some information in
            this email which i wanted, but the mail becomes too long
            already, so i&#39;d rather wrap up now and answer the questions
            as they arrive.</div>
          <div><br>
          </div>
          -- <br>
          <div>
            <div><span style="color:rgb(102,102,102)">With best regards,
                Sergey Sharybin</span></div>
          </div>
        </div>
      </div></div></div>
      <br>
      <fieldset></fieldset>
      <br><span class="">
      <pre>_______________________________________________
Bf-cycles mailing list
<a href="mailto:Bf-cycles@blender.org" target="_blank">Bf-cycles@blender.org</a>
<a href="http://lists.blender.org/mailman/listinfo/bf-cycles" target="_blank">http://lists.blender.org/mailman/listinfo/bf-cycles</a>
</pre>
    </span></blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
Bf-cycles mailing list<br>
<a href="mailto:Bf-cycles@blender.org">Bf-cycles@blender.org</a><br>
<a href="http://lists.blender.org/mailman/listinfo/bf-cycles" target="_blank">http://lists.blender.org/mailman/listinfo/bf-cycles</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div><span style="color:rgb(102,102,102)">With best regards, Sergey Sharybin</span></div></div>
</div>