preserving version creator + timestamp in filetree

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

preserving version creator + timestamp in filetree

Paul DeBruicker
Today I put most if not all of the projects I've created on SqueakSource
on both SS3 and http://www.github.com/pdebruic.

One of the projects I also want to make copies of off of SqueakSource is
Chronos.  Chronos is more than 99% Alan Lovejoy and less than 1% me (for
bringing it up-to-date for Pharo1.3, Squeak 4.3, and Gemstone 2.4).  If
I copy it to github I'm afraid that the fact that he had anything to do
with it will be lost. Other than something in the READMEs and links to
his http://www.chronos-st.org site.

In filetree is there a way each method can retain its timestamp and
creator  and if not is there a way to set it up so it does or can with a
flag or something?


Thanks and I'd be happy to repost this to the Pharo-Users list or
something if that's a better place
Reply | Threaded
Open this post in threaded view
|

Re: preserving version creator + timestamp in filetree

Dale Henrichs
Paul,

This is the right spot ...

I've gone back and forth on the preserving timestamps issue ... the only reason to preserve timestamps is to be backwards compatible with Monticello ... using one file per method, git records not only the contributors to the methods, but which lines have been modified by each contributor ... so moving forward it doesn't make sense to record the redundant information especially since as things stand now, we would be recording the author information in a completely separate file .... two files per method ...

At some level it is a seeding issue (initial author ...) you could highlight Alan Lovejoy's contribution in the license file and or project readme ... it's much clearer to include authorship/contributions in the license file anyway ...

I'll be interested in hearing discussion and opinions ...

Dale

----- Original Message -----
| From: "Paul DeBruicker" <[hidden email]>
| To: [hidden email]
| Sent: Tuesday, June 5, 2012 7:26:13 PM
| Subject: [Metacello] preserving version creator + timestamp in filetree
|
| Today I put most if not all of the projects I've created on
| SqueakSource
| on both SS3 and http://www.github.com/pdebruic.
|
| One of the projects I also want to make copies of off of SqueakSource
| is
| Chronos.  Chronos is more than 99% Alan Lovejoy and less than 1% me
| (for
| bringing it up-to-date for Pharo1.3, Squeak 4.3, and Gemstone 2.4).
|  If
| I copy it to github I'm afraid that the fact that he had anything to
| do
| with it will be lost. Other than something in the READMEs and links
| to
| his http://www.chronos-st.org site.
|
| In filetree is there a way each method can retain its timestamp and
| creator  and if not is there a way to set it up so it does or can
| with a
| flag or something?
|
|
| Thanks and I'd be happy to repost this to the Pharo-Users list or
| something if that's a better place
|
Reply | Threaded
Open this post in threaded view
|

Re: preserving version creator + timestamp in filetree

Frank Shearar-3
Dale, I guess the issue arises when one takes a Monticello package,
and then serialises it as a FileTree package?

If one _converted_ a Monticello project (which would require a long
chain of mczs) - and Gitocello does this - then I'd expect the
timestamps to be preserved. Taking a single Monticello snapshot and
serialising it as a FileTree isn't really "converting" a repository.
Or, in practice it is, but it just looks like an initial import.

Now it might be useful to convert a repository, but that should be a
seperate piece of work compared to getting FileTree working. I think
that _for now_ it's more useful to use FileTree in anger and get it
working properly, before we think about a converter.

frank

On 6 June 2012 03:40, Dale Henrichs <[hidden email]> wrote:

> Paul,
>
> This is the right spot ...
>
> I've gone back and forth on the preserving timestamps issue ... the only reason to preserve timestamps is to be backwards compatible with Monticello ... using one file per method, git records not only the contributors to the methods, but which lines have been modified by each contributor ... so moving forward it doesn't make sense to record the redundant information especially since as things stand now, we would be recording the author information in a completely separate file .... two files per method ...
>
> At some level it is a seeding issue (initial author ...) you could highlight Alan Lovejoy's contribution in the license file and or project readme ... it's much clearer to include authorship/contributions in the license file anyway ...
>
> I'll be interested in hearing discussion and opinions ...
>
> Dale
>
> ----- Original Message -----
> | From: "Paul DeBruicker" <[hidden email]>
> | To: [hidden email]
> | Sent: Tuesday, June 5, 2012 7:26:13 PM
> | Subject: [Metacello] preserving version creator + timestamp in filetree
> |
> | Today I put most if not all of the projects I've created on
> | SqueakSource
> | on both SS3 and http://www.github.com/pdebruic.
> |
> | One of the projects I also want to make copies of off of SqueakSource
> | is
> | Chronos.  Chronos is more than 99% Alan Lovejoy and less than 1% me
> | (for
> | bringing it up-to-date for Pharo1.3, Squeak 4.3, and Gemstone 2.4).
> |  If
> | I copy it to github I'm afraid that the fact that he had anything to
> | do
> | with it will be lost. Other than something in the READMEs and links
> | to
> | his http://www.chronos-st.org site.
> |
> | In filetree is there a way each method can retain its timestamp and
> | creator  and if not is there a way to set it up so it does or can
> | with a
> | flag or something?
> |
> |
> | Thanks and I'd be happy to repost this to the Pharo-Users list or
> | something if that's a better place
> |
Reply | Threaded
Open this post in threaded view
|

Re: preserving version creator + timestamp in filetree

Dale Henrichs
Frank,

You have a very good point ... I have done the partial chain with the Metacello repository, because I wanted to see history back to a certain point.

So Paul you could reproduce a partial chain in git by starting with the package(s) from Alan Lovejoy that immediately predate your initial contribution and then copy each of the subsequent mcz packages into the repository (committing between each version) and identify the source in the commit comment and license file as Alan Lovejoy...

Hmm there's probably a way to even identify Alan as the author of the earlier commits ....

Thanks,

Dale

----- Original Message -----
| From: "Frank Shearar" <[hidden email]>
| To: [hidden email]
| Sent: Wednesday, June 6, 2012 3:39:28 AM
| Subject: Re: [Metacello] preserving version creator + timestamp in filetree
|
| Dale, I guess the issue arises when one takes a Monticello package,
| and then serialises it as a FileTree package?
|
| If one _converted_ a Monticello project (which would require a long
| chain of mczs) - and Gitocello does this - then I'd expect the
| timestamps to be preserved. Taking a single Monticello snapshot and
| serialising it as a FileTree isn't really "converting" a repository.
| Or, in practice it is, but it just looks like an initial import.
|
| Now it might be useful to convert a repository, but that should be a
| seperate piece of work compared to getting FileTree working. I think
| that _for now_ it's more useful to use FileTree in anger and get it
| working properly, before we think about a converter.
|
| frank
|
| On 6 June 2012 03:40, Dale Henrichs <[hidden email]> wrote:
| > Paul,
| >
| > This is the right spot ...
| >
| > I've gone back and forth on the preserving timestamps issue ... the
| > only reason to preserve timestamps is to be backwards compatible
| > with Monticello ... using one file per method, git records not
| > only the contributors to the methods, but which lines have been
| > modified by each contributor ... so moving forward it doesn't make
| > sense to record the redundant information especially since as
| > things stand now, we would be recording the author information in
| > a completely separate file .... two files per method ...
| >
| > At some level it is a seeding issue (initial author ...) you could
| > highlight Alan Lovejoy's contribution in the license file and or
| > project readme ... it's much clearer to include
| > authorship/contributions in the license file anyway ...
| >
| > I'll be interested in hearing discussion and opinions ...
| >
| > Dale
| >
| > ----- Original Message -----
| > | From: "Paul DeBruicker" <[hidden email]>
| > | To: [hidden email]
| > | Sent: Tuesday, June 5, 2012 7:26:13 PM
| > | Subject: [Metacello] preserving version creator + timestamp in
| > | filetree
| > |
| > | Today I put most if not all of the projects I've created on
| > | SqueakSource
| > | on both SS3 and http://www.github.com/pdebruic.
| > |
| > | One of the projects I also want to make copies of off of
| > | SqueakSource
| > | is
| > | Chronos.  Chronos is more than 99% Alan Lovejoy and less than 1%
| > | me
| > | (for
| > | bringing it up-to-date for Pharo1.3, Squeak 4.3, and Gemstone
| > | 2.4).
| > |  If
| > | I copy it to github I'm afraid that the fact that he had anything
| > | to
| > | do
| > | with it will be lost. Other than something in the READMEs and
| > | links
| > | to
| > | his http://www.chronos-st.org site.
| > |
| > | In filetree is there a way each method can retain its timestamp
| > | and
| > | creator  and if not is there a way to set it up so it does or can
| > | with a
| > | flag or something?
| > |
| > |
| > | Thanks and I'd be happy to repost this to the Pharo-Users list or
| > | something if that's a better place
| > |
|
Reply | Threaded
Open this post in threaded view
|

Re: preserving version creator + timestamp in filetree

Paul DeBruicker
What about a file per class that is created when going from the image to a filetree repo that lists the creator + time stamp for each method in the class. The info would be persisted close to the code and could account for changes when merging packages in the image rather than when git is used
Reply | Threaded
Open this post in threaded view
|

Re: preserving version creator + timestamp in filetree

Paul DeBruicker
In reply to this post by Dale Henrichs
(originally I posted this on the nabble forums so I hope it doesn't
come through twice)

What about a file per class that is created when going from the image
to a filetree repo that lists the creator + time stamp for each method
in the class?

The info would be persisted close to the code and could account for
changes when merging packages in the image rather than when git is
used for the merge.

It could also be used to help repopulate version info in the image
when loading in a filetree package.



On Jun 6, 8:47 am, Dale Henrichs <[hidden email]> wrote:

> Frank,
>
> You have a very good point ... I have done the partial chain with the Metacello repository, because I wanted to see history back to a certain point.
>
> So Paul you could reproduce a partial chain in git by starting with the package(s) from Alan Lovejoy that immediately predate your initial contribution and then copy each of the subsequent mcz packages into the repository (committing between each version) and identify the source in the commit comment and license file as Alan Lovejoy...
>
> Hmm there's probably a way to even identify Alan as the author of the earlier commits ....
>
> Thanks,
>
> Dale
>
>
>
>
>
>
>
> ----- Original Message -----
>
> | From: "Frank Shearar" <[hidden email]>
> | To: [hidden email]
> | Sent: Wednesday, June 6, 2012 3:39:28 AM
> | Subject: Re: [Metacello] preserving version creator + timestamp in filetree
> |
> | Dale, I guess the issue arises when one takes a Monticello package,
> | and then serialises it as a FileTree package?
> |
> | If one _converted_ a Monticello project (which would require a long
> | chain of mczs) - and Gitocello does this - then I'd expect the
> | timestamps to be preserved. Taking a single Monticello snapshot and
> | serialising it as a FileTree isn't really "converting" a repository.
> | Or, in practice it is, but it just looks like an initial import.
> |
> | Now it might be useful to convert a repository, but that should be a
> | seperate piece of work compared to getting FileTree working. I think
> | that _for now_ it's more useful to use FileTree in anger and get it
> | working properly, before we think about a converter.
> |
> | frank
> |
> | On 6 June 2012 03:40, Dale Henrichs <[hidden email]> wrote:
> | > Paul,
> | >
> | > This is the right spot ...
> | >
> | > I've gone back and forth on the preserving timestamps issue ... the
> | > only reason to preserve timestamps is to be backwards compatible
> | > with Monticello ... using one file per method, git records not
> | > only the contributors to the methods, but which lines have been
> | > modified by each contributor ... so moving forward it doesn't make
> | > sense to record the redundant information especially since as
> | > things stand now, we would be recording the author information in
> | > a completely separate file .... two files per method ...
> | >
> | > At some level it is a seeding issue (initial author ...) you could
> | > highlight Alan Lovejoy's contribution in the license file and or
> | > project readme ... it's much clearer to include
> | > authorship/contributions in the license file anyway ...
> | >
> | > I'll be interested in hearing discussion and opinions ...
> | >
> | > Dale
> | >
> | > ----- Original Message -----
> | > | From: "Paul DeBruicker" <[hidden email]>
> | > | To: [hidden email]
> | > | Sent: Tuesday, June 5, 2012 7:26:13 PM
> | > | Subject: [Metacello] preserving version creator + timestamp in
> | > | filetree
> | > |
> | > | Today I put most if not all of the projects I've created on
> | > | SqueakSource
> | > | on both SS3 andhttp://www.github.com/pdebruic.
> | > |
> | > | One of the projects I also want to make copies of off of
> | > | SqueakSource
> | > | is
> | > | Chronos.  Chronos is more than 99% Alan Lovejoy and less than 1%
> | > | me
> | > | (for
> | > | bringing it up-to-date for Pharo1.3, Squeak 4.3, and Gemstone
> | > | 2.4).
> | > |  If
> | > | I copy it to github I'm afraid that the fact that he had anything
> | > | to
> | > | do
> | > | with it will be lost. Other than something in the READMEs and
> | > | links
> | > | to
> | > | hishttp://www.chronos-st.orgsite.
> | > |
> | > | In filetree is there a way each method can retain its timestamp
> | > | and
> | > | creator  and if not is there a way to set it up so it does or can
> | > | with a
> | > | flag or something?
> | > |
> | > |
> | > | Thanks and I'd be happy to repost this to the Pharo-Users list or
> | > | something if that's a better place
> | > |
> |
Reply | Threaded
Open this post in threaded view
|

Re: preserving version creator + timestamp in filetree

Dale Henrichs
Paul,

Ah...that does have the advantage of reducing the number of files that have to be managed while preserving the (admittedly) nice feature of tracking the author/timestamp for Monticello compatibility.

Moving forward when we have a tighter coupling with git, the author timestamp can be extracted from git ... but until then ... this seems to be a good solution to the problem ....

If you've loaded FileTree you may have noticed that the current implementation overrides McMethodDefinition>>=[1] since the timestamps currently "change" with each new git commit .... I've been sweating what to do about this and yo've given me an acceptable workaround:)

Thanks...

Dale

[1] https://github.com/dalehenrich/filetree/blob/master/repository/MonticelloFileTree-Core.package/MCMethodDefinition.extension/instance/%5Eequals.st#L9

----- Original Message -----
| From: "Paul DeBruicker" <[hidden email]>
| To: "Metacello" <[hidden email]>
| Sent: Thursday, June 7, 2012 7:17:41 AM
| Subject: [Metacello] Re: preserving version creator + timestamp in filetree
|
| (originally I posted this on the nabble forums so I hope it doesn't
| come through twice)
|
| What about a file per class that is created when going from the image
| to a filetree repo that lists the creator + time stamp for each
| method
| in the class?
|
| The info would be persisted close to the code and could account for
| changes when merging packages in the image rather than when git is
| used for the merge.
|
| It could also be used to help repopulate version info in the image
| when loading in a filetree package.
|
|
|
| On Jun 6, 8:47 am, Dale Henrichs <[hidden email]> wrote:
| > Frank,
| >
| > You have a very good point ... I have done the partial chain with
| > the Metacello repository, because I wanted to see history back to
| > a certain point.
| >
| > So Paul you could reproduce a partial chain in git by starting with
| > the package(s) from Alan Lovejoy that immediately predate your
| > initial contribution and then copy each of the subsequent mcz
| > packages into the repository (committing between each version) and
| > identify the source in the commit comment and license file as Alan
| > Lovejoy...
| >
| > Hmm there's probably a way to even identify Alan as the author of
| > the earlier commits ....
| >
| > Thanks,
| >
| > Dale
| >
| >
| >
| >
| >
| >
| >
| > ----- Original Message -----
| >
| > | From: "Frank Shearar" <[hidden email]>
| > | To: [hidden email]
| > | Sent: Wednesday, June 6, 2012 3:39:28 AM
| > | Subject: Re: [Metacello] preserving version creator + timestamp
| > | in filetree
| > |
| > | Dale, I guess the issue arises when one takes a Monticello
| > | package,
| > | and then serialises it as a FileTree package?
| > |
| > | If one _converted_ a Monticello project (which would require a
| > | long
| > | chain of mczs) - and Gitocello does this - then I'd expect the
| > | timestamps to be preserved. Taking a single Monticello snapshot
| > | and
| > | serialising it as a FileTree isn't really "converting" a
| > | repository.
| > | Or, in practice it is, but it just looks like an initial import.
| > |
| > | Now it might be useful to convert a repository, but that should
| > | be a
| > | seperate piece of work compared to getting FileTree working. I
| > | think
| > | that _for now_ it's more useful to use FileTree in anger and get
| > | it
| > | working properly, before we think about a converter.
| > |
| > | frank
| > |
| > | On 6 June 2012 03:40, Dale Henrichs <[hidden email]> wrote:
| > | > Paul,
| > | >
| > | > This is the right spot ...
| > | >
| > | > I've gone back and forth on the preserving timestamps issue ...
| > | > the
| > | > only reason to preserve timestamps is to be backwards
| > | > compatible
| > | > with Monticello ... using one file per method, git records not
| > | > only the contributors to the methods, but which lines have been
| > | > modified by each contributor ... so moving forward it doesn't
| > | > make
| > | > sense to record the redundant information especially since as
| > | > things stand now, we would be recording the author information
| > | > in
| > | > a completely separate file .... two files per method ...
| > | >
| > | > At some level it is a seeding issue (initial author ...) you
| > | > could
| > | > highlight Alan Lovejoy's contribution in the license file and
| > | > or
| > | > project readme ... it's much clearer to include
| > | > authorship/contributions in the license file anyway ...
| > | >
| > | > I'll be interested in hearing discussion and opinions ...
| > | >
| > | > Dale
| > | >
| > | > ----- Original Message -----
| > | > | From: "Paul DeBruicker" <[hidden email]>
| > | > | To: [hidden email]
| > | > | Sent: Tuesday, June 5, 2012 7:26:13 PM
| > | > | Subject: [Metacello] preserving version creator + timestamp
| > | > | in
| > | > | filetree
| > | > |
| > | > | Today I put most if not all of the projects I've created on
| > | > | SqueakSource
| > | > | on both SS3 andhttp://www.github.com/pdebruic.
| > | > |
| > | > | One of the projects I also want to make copies of off of
| > | > | SqueakSource
| > | > | is
| > | > | Chronos.  Chronos is more than 99% Alan Lovejoy and less than
| > | > | 1%
| > | > | me
| > | > | (for
| > | > | bringing it up-to-date for Pharo1.3, Squeak 4.3, and Gemstone
| > | > | 2.4).
| > | > |  If
| > | > | I copy it to github I'm afraid that the fact that he had
| > | > | anything
| > | > | to
| > | > | do
| > | > | with it will be lost. Other than something in the READMEs and
| > | > | links
| > | > | to
| > | > | hishttp://www.chronos-st.orgsite.
| > | > |
| > | > | In filetree is there a way each method can retain its
| > | > | timestamp
| > | > | and
| > | > | creator  and if not is there a way to set it up so it does or
| > | > | can
| > | > | with a
| > | > | flag or something?
| > | > |
| > | > |
| > | > | Thanks and I'd be happy to repost this to the Pharo-Users
| > | > | list or
| > | > | something if that's a better place
| > | > |
| > |
|
Reply | Threaded
Open this post in threaded view
|

Re: preserving version creator + timestamp in filetree

otto
In reply to this post by Paul DeBruicker
It could also help to make the author of the initial commit Alan where
you could be the committer. One could then derive the author (and
committer) for each file by using for example git log <method name>.

At least looking at the code and history in the git repository gives
credit to Alan as the author.

Now to getting this information to pull through into the image.

HTH
Otto

> One of the projects I also want to make copies of off of SqueakSource is
> Chronos.  Chronos is more than 99% Alan Lovejoy and less than 1% me (for
> bringing it up-to-date for Pharo1.3, Squeak 4.3, and Gemstone 2.4).  If I
> copy it to github I'm afraid that the fact that he had anything to do with
> it will be lost. Other than something in the READMEs and links to his
> http://www.chronos-st.org site.
>
> In filetree is there a way each method can retain its timestamp and creator
>  and if not is there a way to set it up so it does or can with a flag or
> something?
Reply | Threaded
Open this post in threaded view
|

Re: preserving version creator + timestamp in filetree

Dale Henrichs
In reply to this post by Paul DeBruicker
Paul,

Your post from nabble finally showed up in my inbox and I approved you for future posts ... so the next time you reply from nabble the post should come through okay ...

Dale

----- Original Message -----
| From: "Paul DeBruicker" <[hidden email]>
| To: [hidden email]
| Sent: Wednesday, June 6, 2012 11:06:46 AM
| Subject: [Metacello] Re: preserving version creator + timestamp in filetree
|
| What about a file per class that is created when going from the image
| to a
| filetree repo that lists the creator + time stamp for each method in
| the
| class. The info would be persisted close to the code and could
| account for
| changes when merging packages in the image rather than when git is
| used
|
| --
| View this message in context:
| http://forum.world.st/preserving-version-creator-timestamp-in-filetree-tp4633457p4633555.html
| Sent from the Metacello mailing list archive at Nabble.com.
|
Reply | Threaded
Open this post in threaded view
|

Re: preserving version creator + timestamp in filetree

Dale Henrichs
In reply to this post by Paul DeBruicker
Paul,

I've just finished implementing your proposed solution[1]....

There is a caveat, if you have already loaded FileTree then you've got my override of MCMethodDefinition>>=.

When you upgrade (this commit or later[2]), Monticello will end up removing the #= method and Monticello won't work correctly moving forward ... You can revert the Monticello package before or after the upgrade (I've done it both ways), but you need to remember to do it:)

The upshot is that moving forward the author and timestamps for each method will be preserved ... it does mean that the (one per class) methodProperties files will be modified when you modify a method in the class, but that's much less annoying than two files per method.

Let me know how it works for your,

Dale

[1] https://github.com/dalehenrich/filetree/issues/33
[2] https://github.com/dalehenrich/filetree/commit/ece58e82dc803001578f7d40c2c6a61fbb0066c2

----- Original Message -----
| From: "Paul DeBruicker" <[hidden email]>
| To: [hidden email]
| Sent: Wednesday, June 6, 2012 11:06:46 AM
| Subject: [Metacello] Re: preserving version creator + timestamp in filetree
|
| What about a file per class that is created when going from the image
| to a
| filetree repo that lists the creator + time stamp for each method in
| the
| class. The info would be persisted close to the code and could
| account for
| changes when merging packages in the image rather than when git is
| used
|
| --
| View this message in context:
| http://forum.world.st/preserving-version-creator-timestamp-in-filetree-tp4633457p4633555.html
| Sent from the Metacello mailing list archive at Nabble.com.
|