Re: gitignore for projects

2020-01-04 Thread Tom Benedict via 4D_Tech
John DeSoi, Ph.D.

Thanks for offering your workflow, John. This is very interesting.

> "Master" branch is version 17. When I want to commit a new version I have a 
> 4D method that copies the structure, opens it in 4D 18, and then exports the 
> structure in project mode format. This can be completely automated and only 
> takes a few seconds.

How large is your structure? I ask, because our structure has around a million 
lines of code and probably 15,000 forms and when I’ve tried exporting under 
17r5 it takes many minutes. Also, my attempt at setting up a git repository ran 
into similar performance issues, only hours instead of minutes. I lost interest 
at that point. 

> You can continue to make version 17 changes, export, and then merge into your 
> 18 branch. At some point in the future, all your conversion issues will be 
> resolved and you can promote the 18 branch as master and deploy with 4D 18.

This sounds almost like magic. When you “merge” how do you know what code takes 
priority? Do you have to examine each method and form? 

BTW, did you have prior experience with git? I’m asking because my past 
attempts to get a conceptual understanding of git and version control have had 
limited success. I found the concepts and terminology overwhelming and couldn't 
map the git workflow to my 4D workflow at all. I’m looking forward to more 
posts like yours which provides ‘just enough’ git to get started.

Tom Benedict
**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: gitignore for projects

2020-01-04 Thread John DeSoi via 4D_Tech
Hi Jeremy,


> On Jan 4, 2020, at 1:53 PM, Jeremy French  wrote:
> 
> Did you create the v17 Master Branch by:
> 
> 1) Open a copy of the v17 structure and then open the copy in v18 to convert 
> v17 to v18; and
> 2) Commit the conversion to v18 as the v17 Master branch; and
> 3) Create a new branch (off Master) as v18.
> 
> The above was done only once.

Conceptually, that is the best way to think about it. After the first 
conversion you have a "master" branch which is the 4D 17 version converted to 
18. Initially, the "18" branch is exactly the same.

Then I can switch to the 18 branch and work on new features that use new 
commands and functions added in 4D 18.

>> 
>> When I want to commit a new version I have a 4D method that copies the 
>> structure, opens it in 4D 18, and then exports the structure in project mode 
>> format.
> 
> Are you doing this workflow to continue development in v17?

Yes. Switch back to the 17 "master" branch. Verify there are no uncommitted 
changes in the Project folder (git status called from 4D). Move the Project 
folder to the trash. Run the 17 to 18 script again and generate a new Project 
folder with the current source. Commit as the new "master" branch. Merge (or 
fast forward) the master branch into the 18 branch to keep it up to date with 
the changes in 4D 17.

In this model, I'm only making structure and form changes in the 17 master 
branch. Methods can be changed in both branches.


John DeSoi, Ph.D.


**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: gitignore for projects

2020-01-04 Thread Jeremy French via 4D_Tech
Hi John,

> You can keep your project in binary mode (even keep it in version 17) and 
> still take advantage of version 18, project mode, and git.

Interesting idea.


> "Master" branch is version 17.

Did you create the v17 Master Branch by:

1) Open a copy of the v17 structure and then open the copy in v18 to convert 
v17 to v18; and
2) Commit the conversion to v18 as the v17 Master branch; and
3) Create a new branch (off Master) as v18.

The above was done only once.


> When I want to commit a new version I have a 4D method that copies the 
> structure, opens it in 4D 18, and then exports the structure in project mode 
> format.

Are you doing this workflow to continue development in v17?

1) Continue to develop in v17; and
2) Make a copy of the v17 structure and then open the copy in v18 to convert 
v17 to v18; and
3) Commit the v18 to the v18 branch.


Best regards,
Jeremy French


Full post from John DeSoi follows:


> When I want to commit a new version I have a 4D method that copies the 
> structure, opens it in 4D 18, and then exports the structure in project mode 
> format

> On Jan 4, 2020, at 12:33 PM, John DeSoi via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> You can keep your project in binary mode (even keep it in version 17) and 
> still take advantage of version 18, project mode, and git. Here is what I'm 
> doing.
> 
> "Master" branch is version 17. When I want to commit a new version I have a 
> 4D method that copies the structure, opens it in 4D 18, and then exports the 
> structure in project mode format. This can be completely automated and only 
> takes a few seconds.
> 
> Now that you have a master branch, you can create a version 18 branch for 
> implementing next version features that take advantage of new 4D 18 
> capabilities. Just open your source directly in version 18 project mode. You 
> can test the conversion and have both 17 and 18 versions open at the same 
> time as long as you have separate data files.
> 
> You can continue to make version 17 changes, export, and then merge into your 
> 18 branch. At some point in the future, all your conversion issues will be 
> resolved and you can promote the 18 branch as master and deploy with 4D 18.
> 
> John DeSoi, Ph.D.

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**

Re: gitignore for projects

2020-01-04 Thread John DeSoi via 4D_Tech
You can keep your project in binary mode (even keep it in version 17) and still 
take advantage of version 18, project mode, and git. Here is what I'm doing.

 "Master" branch is version 17. When I want to commit a new version I have a 4D 
method that copies the structure, opens it in 4D 18, and then exports the 
structure in project mode format. This can be completely automated and only 
takes a few seconds.

Now that you have a master branch, you can create a version 18 branch for 
implementing next version features that take advantage of new 4D 18 
capabilities. Just open your source directly in version 18 project mode. You 
can test the conversion and have both 17 and 18 versions open at the same time 
as long as you have separate data files.

You can continue to make version 17 changes, export, and then merge into your 
18 branch. At some point in the future, all your conversion issues will be 
resolved and you can promote the 18 branch as master and deploy with 4D 18.

John DeSoi, Ph.D.


 
> On Jan 3, 2020, at 5:17 PM, Tom Benedict via 4D_Tech <4d_tech@lists.4d.com> 
> wrote:
> 
> This is a great discussion of best practices and guidelines for 4D Projects 
> and I hope others chime in. It’s a new world for many of us. I would like to 
> start using Project Mode, but our apps have hundreds (maybe thousands) of 
> highlight buttons, which are incompatible. If anyone has built an automated 
> or even semi-automated way to convert highlight buttons to 3D buttons, I’d 
> love to hear about it.

**
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**