<div dir="ltr">I don'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'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'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's really obvious isn't it :) here'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'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'll mean a/intern/cycles will be stripped from the paths in the patch)</div><div>`-- directory src` prepends "src/" 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 "Cycles: " 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't have those changes. Didn't really finish it yet but will publish it as soon as it'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"><<a href="mailto:blender@dingto.org" target="_blank">blender@dingto.org</a>></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 -> 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'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'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's
possible to track down every change in the sources. The only
thing here is that it'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't be difficult to keep Cycles in Blender and
standalone repositories in sync. There are a bit of changes to
build system which we'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 "works for me", so
more tweaks are likely needed before compilation becomes
flawless for everyone.</div>
<div><br>
</div>
<div>*NOTE*: Windows is not supported atm! It's because of some
dependencies which are not so clear to get. Mainly OpenGL,
GLUT and GLEW. Don'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'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'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'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'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'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'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'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'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>