<div dir="ltr"><div dir="ltr"><div dir="ltr">Yeah this kind of thing can be quick (many projects keep track of code from day one) or take years (for geoserver we eventually sat down with a code sprint and git history).<div><br></div><div>Here is a script I made, that produced a CSV file, that I then open up in a spreadsheet:</div><div><br></div><div><div>#!/bin/bash</div><div>for file in `git ls-files -x src/*`</div><div>do</div><div>    HASH=`git log --diff-filter=A --format="%H" -- $file | tail -n 1`</div><div>    AUTHOR=`git show -s --format="%aN" --date=short $HASH --`</div><div>    CREATED=`git show -s --format="%cd" --date=short $HASH --`</div><div>    MODIFIED=`git log --format="%cd" --date=short -n 1 -- $file`</div><div>    printf "%s,%s,%s,%s,%s\n" $file "$AUTHOR" "${CREATED:0:4}" "${MODIFIED:0:4}" $HASH </div><div>done</div></div><div><br></div><div>Reference: <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=442206">https://bugs.eclipse.org/bugs/show_bug.cgi?id=442206</a> </div><div><br></div><div>Keep in mind some of the fun of this exercise is to double check where your code actually came from and confirm you have permission to distribute it as open source. While a script can provide a running start, it is your confidence in what you have done as a team that we are really going for here :)</div><div><br></div><div>Also note that code providence audits like this are performed when evaluating software projects for use. Performing this check yourself lowers the bar for organizations wishing to use your software.</div><div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>--</div><div>Jody Garnett</div></div></div></div></div></div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 3 Sep 2020 at 16:56, Alex Leith <<a href="mailto:alexgleith@gmail.com">alexgleith@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr">Thanks Markus!<div><br></div><div>I'll have a read of it, but I haven't got much experience running perl and we are probably better off whipping up something custom.</div><div><br></div><div>Always nice to see the history!</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 4 Sep 2020 at 05:08, Markus Neteler <<a href="mailto:neteler@osgeo.org" target="_blank">neteler@osgeo.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I searched around for a while,<br>
<br>
found<br>
<a href="https://wiki.osgeo.org/wiki/GRASS_Incubation_Progress" rel="noreferrer" target="_blank">https://wiki.osgeo.org/wiki/GRASS_Incubation_Progress</a><br>
--> <a href="https://wiki.osgeo.org/wiki/GRASS_Provenance_Review" rel="noreferrer" target="_blank">https://wiki.osgeo.org/wiki/GRASS_Provenance_Review</a><br>
<br>
with the hint<br>
"Kudos to Schuyler Erle for writing the PERL script which quite helped<br>
(tools/<a href="http://copywrite.pl" rel="noreferrer" target="_blank">copywrite.pl</a>). The expansion of CVS names was done by reading<br>
in contributors.csv."<br>
<br>
and voilà:<br>
<a href="https://github.com/OSGeo/grass/blob/master/tools/copywrite.pl" rel="noreferrer" target="_blank">https://github.com/OSGeo/grass/blob/master/tools/copywrite.pl</a><br>
<br>
(originally added on April 27, 2006:<br>
 <a href="https://github.com/OSGeo/grass-legacy/blob/develbranch_6/tools/copywrite.pl" rel="noreferrer" target="_blank">https://github.com/OSGeo/grass-legacy/blob/develbranch_6/tools/copywrite.pl</a><br>
)<br>
<br>
Dunno if it helps in your case but nothing is lost ;-)<br>
<br>
Markus<br>
<br>
On Thu, Sep 3, 2020 at 12:38 AM Alex Leith <<a href="mailto:alexgleith@gmail.com" target="_blank">alexgleith@gmail.com</a>> wrote:<br>
><br>
> I've been procrastinating on this for a long time... I will get to it, but if there is an existing script, that would help!<br>
><br>
> On Thu, 3 Sep 2020 at 02:02, Markus Neteler <<a href="mailto:neteler@osgeo.org" target="_blank">neteler@osgeo.org</a>> wrote:<br>
>><br>
>> Hi Alex,<br>
>><br>
>> On Wed, Sep 2, 2020 at 12:55 AM Alex Leith <<a href="mailto:alexgleith@gmail.com" target="_blank">alexgleith@gmail.com</a>> wrote:<br>
>> ><br>
>> > Oh nice!<br>
>> ><br>
>> > I'm working on ODC as an OSGeo project... I just need to find a day to add headers to all our Python files to progress to the next stage.<br>
>><br>
>> I did much of this job back then for GRASS GIS (in 2006 or so): we<br>
>> used a script to generate and inject draft headers with author names<br>
>> extracted from the repo log.<br>
>> Don't know if I can still find this tool but others here may have done<br>
>> something similar.<br>
>><br>
>> Cheers,<br>
>> Markus<br>
><br>
><br>
><br>
> --<br>
> Alex Leith<br>
> m: 0419189050<br>
<br>
-- <br>
Markus Neteler, PhD<br>
<a href="https://www.mundialis.de" rel="noreferrer" target="_blank">https://www.mundialis.de</a> - free data with free software<br>
<a href="https://grass.osgeo.org" rel="noreferrer" target="_blank">https://grass.osgeo.org</a><br>
<a href="https://courses.neteler.org/blog" rel="noreferrer" target="_blank">https://courses.neteler.org/blog</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div>Alex Leith<br></div>m: 0419189050</div></div>
_______________________________________________<br>
Incubator mailing list<br>
<a href="mailto:Incubator@lists.osgeo.org" target="_blank">Incubator@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/incubator" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/incubator</a></blockquote></div>