"TestAll" project issues
lazarus / 10-Designer
----------------------------------------------------------------------
JuhaManninen · 2022-12-10 19:21
This Aruna's quote is copied from the "Bugs in Example Projects
window" thread.
Quote from: Aruna on December 09, 2022, 12:53:41 amI ran git blame
examples/testall.lpi and below is what is of interest to us.
Code: Text [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i 87791326d0d
(bart 2016-03-04 15:05:52 +0000 87) 87791326d0d
(bart 2016-03-04 15:05:52 +0000 88) 5328b9a852b (juha 2019-05-06 11:32:58 +0000
89) 87791326d0d (bart 2016-03-04
15:05:52 +0000 90)
In 2019 Juha added this works for windows but does
not work for Linux
as seen by the error message below.
git blame shows who touched a certain line last. It does not show
further history nor the diff of the commits mentioned. For that you
need another tool like gitk.
Commit 5328b9a852b is from 2019-05-06. Here is the diff :
Code: [Select]
-
+
+
+
+
-
@@ -47,9 +49,10 @@
-
-
-
+
+
+
+
@@ -83,7 +86,7 @@
-
+
There is a related commit 337b198136 from 2020-12-11. Its diff :
Code: [Select]@@ -21,7 +21,7 @@
-
+
As you can see I fixed the path delimiters so that they work also on
Linux and Unix systems.
QuoteCode: Text [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i Unable to
write state file for project ProjectError: Unable to create file
"/home/aruna/lazarus/examples/lib\x86_64-linux/testall.compiled": No
such file or directory The path is all that needs to be fixed so I
changed the '\' backslash after /home/aruna/lazarus/examples/lib\ to a
forward slash and now it works on linux. My question to you all is the
testall.lpi file contents are in XML format so how do I do something
like {$ifdef linux} in a XML file for christ sake OR as is usual in
my case I am missing something obvious?
'/' in path settings works also on Windows. The IDE at some point
converts it to '\' for Windows. No need for {$ifdef linux} in XML.
Why you have '\' there? I don't know.
Maybe you checked out (git checkout) a revision earlier than commit
337b198136.
Maybe you have local changes after you played with the commit history.
Then do "git reset --hard" but be careful with it. You may lose
changes you wanted to keep.
I assume you have the "main" branch active.
----------------------------------------------------------------------
Aruna · 2022-12-11 03:49
Quote from: JuhaManninen on December 10, 2022, 08:21:40 pmAs you can
see I fixed the path delimiters so that they work also on Linux and
Unix systems.
Yes I saw that after I had sent out my email.
Quote from: JuhaManninen on December 10, 2022, 08:21:40 pm'/' in path
settings works also on Windows. The IDE at some point converts it to
'\' for Windows. No need for {$ifdef linux} in XML.
[EDIT] No wonder... I want to see how and where the IDE is converting
this I was quite perplexed when it did work fine on both windows and
my linux. Now I know the reason haha
Quote from: JuhaManninen on December 10, 2022, 08:21:40 pmWhy you have
'\' there? I don't know.
Initially because I had checked out a branch which did not have your
fix and now because 'I' went and changed it to trigger the error. It
is all good now. Thank you. Sorry for causing any confusion.
Quote from: JuhaManninen on December 10, 2022, 08:21:40 pmMaybe you
checked out (git checkout) a revision earlier than commit 337b198136.
Yes that was why.
Quote from: JuhaManninen on December 10, 2022, 08:21:40 pmMaybe you
have local changes after you played with the commit history. Then do
"git reset --hard" but be careful with it. You may lose changes you
wanted to keep.
I assume you have the "main" branch active.
The main branch I check out when I need to but I am mostly on
fixes_2_2 because that is the branch that has the other examples that
need work.
----------------------------------------------------------------------
JuhaManninen · 2022-12-11 08:48
QuoteThe main branch I check out when I need to but I am mostly on
fixes_2_2 because that is the branch that has the other examples that
need work.
You mean the examples that were deleted from "main"? The examples that
were not deleted, were moved to another directory and can still be
found in "main".
The ones that were deleted, may have been changed in "main" before the
deletion. "fixes_2_2" branch does not have those changes.
At least "TestAll" was changed in "main".
Instead of working with "fixes_2_2" you should go to a "main" revision
just before the deletion, then copy the examples you need somewhere
and then return to "main" HEAD.
Later create a local feature branch for your own changes. That branch
can be rebased against "main" from time to time.
The deletion happened in revision 31328882fb8d3acace
Date: 05/03/2022
Message: Example projects tested, categorised, metadata added,
restructured by David Bannon.
The revision before that is 4030fcc52c936a, dealing with Codetools.
Do "git checkout 4030fcc52c936a", then copy the files.
----------------------------------------------------------------------
JuhaManninen · 2022-12-11 10:28
Quote from: Aruna on December 11, 2022, 04:49:17 amI want to see how
and where the IDE is converting this I was quite perplexed when it did
work fine on both windows and my linux. Now I know the reason haha
Unit LazFileUtils has function SwitchPathDelims(). Search for it in
all Lazarus sources, whole words only. You should get 52 matches.
Study the code that calls it.
'\' path delimiter is processed also in some other functions.
----------------------------------------------------------------------
JuhaManninen · 2022-12-22 07:59
This Aruna's question was in "Bugs in Example Projects window" thread.
I reply it here.
Quote from: Aruna on December 21, 2022, 02:13:02 amI just moved all
'testall' files to lcl/tests in branch fixes_2_2 on my local
repository and pushed to my remote everything went well. Now when I
try to create a merge request gitlab starts complaining please see
attached screenshot.
Don't use fixes_2_2 branch when you participate in the development
process. You must use the "main" branch.
Some bug fix commits are then backported to fixes_2_2 but everything
goes to "main" first.
The Lazarus development version is very usable most of the time. You
should consider using it exclusively unless you maintain some customer
application which requires max stability.
For example I play only with the "main" development version because I
don't have such projects to maintain now.
Quote from: Aruna on December 22, 2022, 12:40:11 amSo I have to
- fork the Lazarus Repo, then..
- clone the fork to my local system, then..
- somehow get the local repo to fetch/pull from the original Lazarus
main/trunk.
You can skip the GitLab merge request process if you don't like it.
Patches are still supported.
Work with your changes in a local feature branch ("git switch -c
myfeature") and "git rebase main" it sometimes.
Create patch(es) with "git format-patch main" while your feature
branch is active. The rebasing guarantees there will be no merge
conflicts when it is applied. Upload the patch to an issue report or
somewhere.
For the TestAll project you don't need to create a patch. For the
revision control those files are new, thus the diff format is not
needed.
Just upload the files here in forum post or in mailing list post or in
issue tracker as a .zip or .tgz package or similar. First make sure it
compiles and works with latest "main".
I don't know well the GitHub and GitLab processes either. I used Git
locally for Lazarus development already when it was in a SVN server,
by using a git-svn link. It worked very well and I had a real Git
repository locally with all its goodies.
Now I mostly synchronize with the server with "git pull" and "git
push" using the default "main" branch. Super easy. I guess I should
learn to work with remote branches better.
P.S.
QuoteSince I started working again time has become a very limited
commodity for my personal projects.
Do you also work with carrots? Or some other vegetables maybe?
----------------------------------------------------------------------
Aruna · 2022-12-28 02:34
@JuhaManninen and @dbanon I tried everything and am still unable to
'sync' the Lazarus/main repository with my own fork. I have given the
bash output at each stage and if someone can figure out a fix it would
be most welcome. Else I am simply going to delete my fork and start
from scratch.
I have been struggling with this over a week now :-( Please see below
for details.
I created a remote 'personal' which is my forked repository and a
'upstream' which is lazarus/main.
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
aruna@debian:/media/aruna/linux-next/lazarus$ git remote -vpersonal
https://gitlab.com/aruna.hewapathirane/lazarus.git
(fetch)personal
https://gitlab.com/aruna.hewapathirane/lazarus.git (push)upstream
https://gitlab.com/freepascal.org/lazarus/lazarus.git
(fetch)upstream
https://gitlab.com/freepascal.org/lazarus/lazarus.git (push)
git status tells me my branch is behind by 24 commits.
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
aruna@debian:/media/aruna/linux-next/lazarus$ git statusOn branch
mainYour branch is behind 'upstream/main' by 24 commits, and can be
fast-forwarded. (use "git pull" to update your local branch) nothing
to commit, working tree clean
I do a git pull upstream
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
aruna@debian:/media/aruna/linux-next/lazarus$ git pull
upstreamUpdating fe6b88d8da..0f438c98feFast-
forward components/buildintf/projectintf.pas
| 4 +- components/codetools/finddeclarationtool.pas
| 38 ++++++++++++------ components/ideintf/objectinspector.pp
| 2
+- components/jcf2/IdePlugin/lazarus/jcfuiconsts.pas |
2 +- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.cs.po
| 2
+- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.de.po |
4 +- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.es.po
| 2
+- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.fr.po |
4 +- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.hu.po
| 4
+- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.it.po |
4 +- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.ja.po
| 4
+- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.lt.po |
4 +- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.pl.po
| 2 +- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.pot
| 2
+- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.pt_BR.po |
4 +- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.ru.po
| 6
+-- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.uk.po |
4
+- components/jcf2/IdePlugin/lazarus/languages/jcfuiconsts.zh_CN.po |
2 +- components/jcf2/Parse/BuildParseTree.pas
| 2 +- components/jcf2/Process/Indent/Indenter.pas
| 11 ++++- components/jcf2/Process/Transform/SortUsesData.pas
| 4 +- components/lazcontrols/docs/listfilteredit.xml
| 68 +++++++++++++++++--------------
components/lazcontrols/docs/listviewfilteredit.xml |
39 +++++++++++++++--- components/lazcontrols/docs/treefilteredit.xml
| 52
++++++++++++++++++++---- components/lazcontrols/listfilteredit.pas
| 2
+- components/lazcontrols/listviewfilteredit.pas |
12 +++++- components/lazcontrols/treefilteredit.pas
| 5 ++- components/lazreport/source/fr3tolrf.pas
| 2 +- components/virtualtreeview/laz.virtualtrees.pas
| 8 ---- docs/xml/lcl/comctrls.xml
| 40 ++++++++++++++---- docs/xml/lcl/editbtn.xml
| 107 ++++++++++++++++++++++++++++
+++++++++------------ docs/xml/lcl/printers.xml
| 2 - examples/filteredits/filteredits.ex-meta
| 5 +++ examples/filteredits/filtereditsdemo.ico
| Bin 0 -> 133345
bytes examples/filteredits/filtereditsdemo.lpi
| 95 +++++++++++++++++++++++++++++++++++++++++++ examples/filteredits
/filtereditsdemo.lpr | 28
+++++++++++++ examples/filteredits/filtereditsdemo.res
| Bin 0 -> 135460
bytes examples/filteredits/listfilterunit.lfm
| 23 +++++++++++ examples/filteredits/listfilterunit.pas
| 50
+++++++++++++++++++++++ examples/filteredits/listviewfilterunit.lfm
| 124 ++++++++++++++++++++++++++++++++++++++++++++++
++++++++++ examples/filteredits/listviewfilterunit.pas
| 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
examples/filteredits/mainunit.lfm |
51 +++++++++++++++++++++++ examples/filteredits/mainunit.pas
| 85 +++++++++++++++++++++++++++++++++++++++ ex
amples/filteredits/treefilterunit.lfm | 23
+++++++++++ examples/filteredits/treefilterunit.pas
| 50 +++++++++++++++++++++++ ide/componentlist.pas
| 1 - ide/editorfilemanager.pas
| 1
- ide/frames/editor_keymapping_options.pas |
3 +- ide/projectinspector.pas
| 2 - ide/searchresultview.pp
| 3 +- ide/viewunit_dlg.pp
| 1 - lcl/editbtn.pas
| 57 ++++++++++++++++++-------- lcl/grids.pas
| 8
---- lcl/include/wincontrol.inc
| 6 ++- lcl/interfaces/qt5/cbindings/Qt5Pas.pro
| 11 +++-- lcl/interfaces/qt5/cbindings/src/chandles.h
| 3 ++ lcl/interfaces/qt5/cbindings/src/pascalbind.h
| 2
+ lcl/interfaces/qt5/cbindings/src/qnativeeventfilter_hook.h |
87 ++++++++++++++++++++++++++++++++++++++++ lcl/interfaces/qt5/cbindi
ngs/src/qnativeeventfilter_hook_c.cpp | 36 +++++++++++++++++ lcl/in
terfaces/qt5/cbindings/src/qnativeeventfilter_hook_c.h | 23
+++++++++++ lcl/interfaces/qt5/qt56.pas
| 9 +++++ lcl/interfaces/qt6/cbindings/Qt6Pas.pro
| 13 +++--- lcl/interfaces/qt6/cbindings/src/chandles.h
| 3
++ lcl/interfaces/qt6/cbindings/src/pascalbind.h |
2 + lcl/interfaces/qt6/cbindings/src/qnativeeventfilter_hook.h
| 87 ++++++++++++++++++++++++++++++++++++++++ lcl/interfaces/qt6/cbin
dings/src/qnativeeventfilter_hook_c.cpp | 36 +++++++++++++++++ lcl/
interfaces/qt6/cbindings/src/qnativeeventfilter_hook_c.h | 23
+++++++++++ lcl/interfaces/qt6/qt62.pas
| 10 +++++ lcl/lcltype.pp
| 5 +++ packager/installpkgsetdlg.pas
| 4 +- packager/packageeditor.pas
| 22 +++++----- tools/runwait.sh
| 7 +++- 72 files changed, 1386
insertions(+), 190 deletions(-) create mode 100644
examples/filteredits/filteredits.ex-meta create mode 100644
examples/filteredits/filtereditsdemo.ico create mode 100644
examples/filteredits/filtereditsdemo.lpi create mode 100644
examples/filteredits/filtereditsdemo.lpr create mode 100644
examples/filteredits/filtereditsdemo.res create mode 100644
examples/filteredits/listfilterunit.lfm create mode 100644
examples/filteredits/listfilterunit.pas create mode 100644
examples/filteredits/listviewfilterunit.lfm create mode 100644
examples/filteredits/listviewfilterunit.pas create mode 100644
examples/filteredits/mainunit.lfm create mode 100644
examples/filteredits/mainunit.pas create mode 100644
examples/filteredits/treefilterunit.lfm create mode 100644
examples/filteredits/treefilterunit.pas create mode 100644
lcl/interfaces/qt5/cbindings/src/qnativeeventfilter_hook.h create mode
100644
lcl/interfaces/qt5/cbindings/src/qnativeeventfilter_hook_c.cpp create
mode 100644
lcl/interfaces/qt5/cbindings/src/qnativeeventfilter_hook_c.h create
mode 100644
lcl/interfaces/qt6/cbindings/src/qnativeeventfilter_hook.h create mode
100644
lcl/interfaces/qt6/cbindings/src/qnativeeventfilter_hook_c.cpp create
mode 100644
lcl/interfaces/qt6/cbindings/src/qnativeeventfilter_hook_c.h
Now git status says my branch is uptodate.
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
aruna@debian:/media/aruna/linux-next/lazarus$ git statusOn branch
mainYour branch is up to date with 'upstream/main'. nothing to commit,
working tree clean
So I try to push what I just pulled to my remote 'personal' and
nothing but grief. I need HELP!
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
aruna@debian:/media/aruna/linux-next/lazarus$ git push
personalUsername for 'https://gitlab.com': Aruna.HewapathiranePassword
for 'https://Aruna.Hewapathirane@gitlab.com': To
https://gitlab.com/aruna.hewapathirane/lazarus.git ! [rejected]
main -> main (non-fast-forward)error: failed to push some refs
to 'https://gitlab.com/aruna.hewapathirane/lazarus.git'hint: Updates
were rejected because the tip of your current branch is behindhint:
its remote counterpart. Integrate the remote changes (e.g.hint: 'git
pull ...') before pushing again.hint: See the 'Note about fast-
forwards' in 'git push --help' for
details.aruna@debian:/media/aruna/linux-next/lazarus$
----------------------------------------------------------------------
Aruna · 2022-12-28 02:46
Quote from: JuhaManninen on December 22, 2022, 08:59:01 amDo you also
work with carrots? Or some other vegetables maybe?
I have tried to grow my own vegetables but I live in a condominium
apartment so it has had limited success. I do not have land to plant
on. I have to use small pots or bottles along the living room window
so they get some sunlight. I am not sure if this will work but here
are some pictures of my attempts at growing herbs.
----------------------------------------------------------------------
Martin_fr · 2022-12-28 03:14
Quote from: Aruna on December 28, 2022, 03:34:39 am@JuhaManninen and
@dbanon I tried everything and am still unable to 'sync' the
Lazarus/main repository with my own fork. I have given the bash output
at each stage and if someone can figure out a fix it would be most
welcome. Else I am simply going to delete my fork and start from
scratch.
I have been struggling with this over a week now :-( Please see below
for details.
I created a remote 'personal' which is my forked repository and a
'upstream' which is lazarus/main.
You haven't done a "git pull personal".
If you look at the "git log --oneline --graph --all" then you should
see
(or "git log --oneline --graph -n 50 main upstream/main
personal/main")
1) main (your local branch / the tip of your local branch)
2) upstream/main (the tip of the main branch in the lazarus repo)
3) personal/main (the tip of the main branch in your fork)
the local "main" must be above the personal/main.
And there must be a line down connecting them.
So personal/main is on a commit that is included in local main.
If they are (the error does NOT suggest) on different lines, then they
have "diverged".
But this should only be possible if you made your own commits to main
and pushed that to personal/main.
(to avoid that, always make your own commits on new branches)
----------------------------------------------------------------------
Aruna · 2022-12-28 10:18
Quote from: Martin_fr on December 28, 2022, 04:14:17 am
If you look at the "git log --oneline --graph --all" then you should
see
(or "git log --oneline --graph -n 50 main upstream/main
personal/main")
)
Hello @Martin_fr thank you very much for taking the time to explain
but this is way over my head right now. Hopefully with time I will
begin to understand how git does things.
I ran git reflog. Bash output Is below. You may be able to see where I
went wrong? Please do not ask me why I did whatever it is I did I was
experimenting is my only reason for
all this.
[/quote] Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i 0f438c98fe
HEAD@{0}: pull upstream: Fast-forwardfe6b88d8da HEAD@{1}: reset:
moving to fe6b88d8dadd428486b0 HEAD@{2}: reset: moving to
dd428486b00f438c98fe HEAD@{3}: reset: moving to HEAD0f438c98fe
HEAD@{4}: pull upstream: Fast-forward5f76b3e31c HEAD@{5}: pull: Fast-
forwardfe6b88d8da HEAD@{6}: checkout: moving from fixes_2_2 to
mainfe6b88d8da HEAD@{7}: checkout: moving from
cfe290a58bea764f8246399038407a3af3dccae8 to fixes_2_2cfe290a58b
HEAD@{8}: rebase (pick): Delete Laz_Hello.lpi858d0032ce HEAD@{9}:
rebase (pick): Upload New File92f578a52c HEAD@{10}: rebase (pick):
Upload New Fileff9d3bdfba HEAD@{11}: rebase (pick): Upload New
Filef9610dee62 HEAD@{12}: rebase (pick): Upload New File471e177452
HEAD@{13}: rebase (pick): Upload New Filec02bf01597 HEAD@{14}: rebase
(pick): Upload New File83f083fa3e HEAD@{15}: rebase (pick): Upload New
Filecbe7cd4092 HEAD@{16}: rebase (pick): Upload New File338d6ffa60
HEAD@{17}: rebase (pick): Upload New File5050e1f5ae HEAD@{18}: rebase
(pick): Add new directory2eafc5a18d HEAD@{19}: rebase (pick): Add new
directoryfe6b88d8da HEAD@{20}: rebase (start): checkout maindd428486b0
HEAD@{21}: checkout: moving from
c06424ac85213ff461ecaca210b62cc2fe868382 to personal/mainc06424ac85
HEAD@{22}: checkout: moving from main to personal/fixes_2_2fe6b88d8da
HEAD@{23}: checkout: moving from fixes_2_2 to mainfe6b88d8da
HEAD@{24}: checkout: moving from main to fixes_2_2fe6b88d8da
HEAD@{25}: pull: Fast-forwardd7e3d2231f HEAD@{26}: checkout: moving
from c06424ac85213ff461ecaca210b62cc2fe868382 to mainc06424ac85
HEAD@{27}: checkout: moving from main to
remotes/personal/fixes_2_2d7e3d2231f HEAD@{28}: checkout: moving from
c06424ac85213ff461ecaca210b62cc2fe868382 to mainc06424ac85 HEAD@{29}:
checkout: moving from main to remotes/personal/fixes_2_2d7e3d2231f
HEAD@{30}: checkout: moving from
c06424ac85213ff461ecaca210b62cc2fe868382 to mainc06424ac85 HEAD@{31}:
checkout: moving from main to remotes/personal/fixes_2_2d7e3d2231f
HEAD@{32}: reset: moving to HEADd7e3d2231f HEAD@{33}: clone: from
https://gitlab.com/freepascal.org/lazarus/lazarus.git
As you suggested I also ran Code: Bash [Select][+][-]window.onload =
function(){var x1 = document.getElementById("main_content_section");
if (x1) { var x = document.getElementsByClassName("geshi");for (var i
= 0; i git log --oneline --graph -n 50 main upstream/main
personal/main
Bash output is below. Martin I was thinking if I have really messed
things up would it not be easier to start again from scratch? Or this
can still be salvaged? I am again humbled by the knowledge and
experience that is available freely to anyone on this forum.
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i *
0f438c98fe CodeTools: fix attribute resolver* 5f76b3e31c LCL:
additional fix to TWinControl.GetClientRect wcfBoundsRealized
(DockedFormEditor issue), issue #40052. Patch by rich2014.* 822f606e97
Docs: LCL/comctrls. Adds content for overridden
TPageControl.ChildClassAllowed topic.* dea606d77f Docs: LCL/printers.
Removes TODO entry that has already been handled.* eb59ad598f JCF:
regenerated translations and updated Russian translation* 5719672f10
Codetools: Fix SmartHint for generic specialized types. Issue #29860.*
425db255bd Docs: LCL/editbtn. Adds and updates topics for changes in
5f4aa964.* 421193c712 Docs: LazControls/treefilteredit. Adds and
updates topics for changes in 5f4aa964.* c4dcb8c515 Docs:
LazControls/listviewfilteredit. Adds and updates topics for changes in
5f4aa964.* 9a99d112b5 Docs: LazControls/listfilteredit. Updates topics
for changes in 5f4aa964.* c2a26476f9 buildintf: comment* 5ea4a1e270
Tools: Fix handling program parameters in runwait.sh. Issue #40045,
patch by Dean Mustakinov.* edbe283fc6 Jedi Code Format: Eliminate an
assertion failure in debug mode. Issue #40053, patch by Domingo
Galmés.* 2e160e525d Jedi Code Format: Improve the text for an
indentation option. Issue #40054, patch by Domingo Galmés.* d6bfb829cf
Jedi Code Format: Fix a memory leak. Issue #40058, patch by Domingo
Galmés.* 0777a5b939 Jedi Code Format: Fix indentation of generic
function forward declarations. Issue #40055, patch by Domingo Galmés.*
be093cd40d Add an example project for FilterEdits. Issue #40035,
modified from patch by dbannon.* 5f4aa96422 LazControls, FilterEdits:
Improve setting the filter programmatically. Invalidate after
properties change.* 70bc333d28 Merge branch 'main' into 'main'|\ |
* 2461afd1b1 Cleanup the code and update libqt*pas version| *
5d47e14a50 Added NativeEventFilter hook in qt5| * 7702f3d65a Added
NativeEventFilter hook in qt6|/ * f0e459f047 FPC: Extend
System.UITypes* 99caa084fc Revert TFontStyles to the original size*
fe6b88d8da CI: added a comment to configuration* 57cc6997fc CI: added
manual job for building docs (and emitting them as artifact) with
FPDoc from stable FPC* 3e36732de6 laz.virtualtrees: fixed crash with
qt widgetsets on windows. issue #40056* d115ec0399 Qt6: fixed building
cbindings on windows.* d7e3d2231f Docs: LCL/lclplatformdef. Adds
DirNameToDisplayName and DisplayNameToDirName topics for changes in
c45dfb7a.* 2e64ec91a8 Docs: LCL/printers. Adds, updates topics with
aliases to System.UITypes. Changes in 43d7f203.* d97d330495 Docs:
LCL/grids. Adds content to the TCustomStringGrid.SaveColumns and
TStringGridStrings topics.* 651303f114 Docs: LCL/graphics. Adds,
updates topics with aliases to System.UITypes. Changes in 43d7f203.*
db360c7ede Docs: LCL/forms. Adds, updates topics for aliases to
System.UITypes. Changes in 43d7f203.* 967e4ee615 Docs: LCL/controls.
Adds, updates topics with aliases to System.UITypes. Changes in
43d7f203.* 5f819ddd36 Docs: LazUtils/uitypes. Updates topics with
aliases to System.UITypes. Changes in 43d7f203.* 21e56937cf CI: added
manual jobs for building docs (and emitting them as artifacts) with
FPDoc from FPC `main` and `fixes` branches* a2b7d28e68 CI: store FPDoc
executables separately for different FPC versions* 1b9e56b56c lcl:
fixed TWinControl.GetClientRect wcfBoundsRealized, issue #40052*
f87fe0303d lcl gtk3: load theme.css only if existing* 166d1b6dbf Docs:
Removed unneeded .gitignore. The one in root of the Lazarus source
directory already has relevant entries.* ebdc3913ed IDE/images: Add
some update and missing icons in File menu. By Roland Hahn.*
829f320095 FPC: Extend System.UITypes* c45dfb7a56 IDE: Show Widgetset
display name instead of dir name in selection list for project. Issue
#40040, patch by theo222.* 43d7f20349 FPC: Extend System.UITypes*
5b0ed449f3 Docs: LCL/grids. Updates TCustomStringGrid.Modified topic
to reflect usage.* b72d31e3dc Docs: LazUtils/lconvencoding. Adds and
updates topics for changes in 0ae37a90.* 62f886435d Docs:
LazUtils/codepagescommon. Adds topics for changes in 0ae37a90.*
0ae37a906c LConvEncoding: add EncodingCP865. Patch by Alexey
Torgashin. Issue #40041.* b40000c46c Docs: LCL/comctrl. Updates topic
content.* d7f0ef81fe CI: added archive with CHM docs for stable FPC to
build image (needed for building Lazarus docs)
----------------------------------------------------------------------
Aruna · 2022-12-28 10:57
Quote from: Martin_fr on December 28, 2022, 04:14:17 amYou haven't
done a "git pull personal".
I am confused now @Martin_fr I thought the steps below are what I have
to do to 'sync' the repos?
1 - Fork Lazarus main/trunk
2 - clone the fork to my local system
3 - make changes/test/experiment on my local clone( on a separate
branch as you pointed out )
4 - push the changes to my remote fork ( in this case 'personal')
5 - create a merge/pull request from my remote 'personal' to lazarus
main/trunk (in this case 'upstream')
6 - when needed git pull upstream to 'sync' things again?
So why do I need to git pull personal? personal is the fork which has
no changes so why pull it? very confused here..
Or as is usual I am not seeing the big picture?
----------------------------------------------------------------------
Martin_fr · 2022-12-28 15:03
Ok, I think I found what is going on. I did have a look at your online
repo at gitlab.
The top commit in your main branch
https://gitlab.com/aruna.hewapathirane/lazarus/-/commits/main is
Code: Text [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i Commit
dd428486authored 5 Dec 2022, 15:50 by Aruna Hewapathirane's avatar
Aruna HewapathiraneMerge remote-tracking branch 'upstream/main'And if
you look at the graph
https://gitlab.com/aruna.hewapathirane/lazarus/-/network/main (you
have to scroll down a bit),
you will find that this merge contains your working branch (ending
with Commit 9db84220 "Delete Laz_Hello.lpi")
So you did do commits to the "main" branch.
And you pushed them.
And that is why you are getting errors.
But before I get into detail, a bit of background and some other info.
Steps to fix are at the end of this post. So you can skip forward
1) "git log --graph --oneline"
For some reason your output does not contain any branch/tag names at
all. Here is what I get (and what afaik should be default).
You can see some lines start with "(" and then branch names. (on the
console this usually is colored).
- So the commit on the first line is at "HEAD" which points to the
branch "main_gitlab".
It also is at origin/main and origin/HEAD
- The 2nd line is at "main" (that is my local main branch)
Code: Text [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i *
cbef44b7ef (HEAD -> main_gitlab, origin/main, origin/HEAD) CodeTools:
fix attribute resolver - remove exception handling| * 4190c37981
(main) DebuggerOptions, EnvironmentOptions: move class-config| *
e215aa22c2 EnvironmentOptions: When saving data, don't destroy any
existing xml. (if data on disk changed)|/* 0f438c98fe CodeTools: fix
attribute resolver
This allows me to quickly see where the "tips" of all my branches are.
2) "branch" / "tip" or "head" of a branch .... (nomenclature)
Maybe worth, making sure we talk about the same thing....
The (English) word "branch" is used for a variety of things.
It can be
- A series of commits known by the branch name (i.e. all the commits
that "git log " will show)
Mind that the branch starts at the very first commit of the repo.
Not at the "fork-point" (where the branch was created / diverts from
another branch).
So some (older) commits on a branch are usually shared with other
branches
- A reference to the "branchname"
- The "tip" (sometimes also "head of") of the branch. That is the
latest commit made to the branch.
This is the commit on which "git log" will display the branch-name
3) "branch" local vs remote (vs "distributed")
There exists more than one "branch" called "main".
(And the same is true for most other branches / well any branch that
is pushed/pulled to/from a remote)
* All the below is using "main". But applies to any other branch that
exists on a remote.
You can have a git repo without remote (only your local copy). Then
you only have one "main" branch.
You commit to it, and the tip of main will be on the new commit.
Now if you have a remote, the remote may have 3 commit in main (left =
oldest)
REMOTE:
A - B - C (main)
If you clone/pull that remote to a local repo:
- then your local repo will remember that the remote has "main" on
"C". ("origin" in the example is the name of the remote)
- your local repo will create a local main branch on the same commit.
(or it will be created when you switch/checkout to it)
LOCAL
A - B - C (main, origin/main)
If you make a commit to "main" you make it locally. So it affects your
local branch.
Both:
- The series of commits. As you have one more commit
- The "tip" of the branch. As it move forward
LOCAL (with your commit)
A - B - C (origin/main) - D (main)
As you can see, your local repo still has a memory where the remote
has (or maybe had) the tip of its branch.
If you push then you send all the commits that you added to the
remote.
=> Well, if all goes as expected.
But what if someone else pushed to the remote...
If someone else pushed to the remote, then you don't have that persons
commit.
REMOTE (with someone's commit):
A - B - C - E (main)
LOCAL (with your commit)
A - B - C (origin/main) - D (main)
So now there are 3 versions of the main branch.
1) Your local "main"
2) Your local last-know-remote "origin/main"
3) the actual remote "main"
Unlike SVN which will merge at the server, git will not accept your
push.
GIT always requires that you do the merging yourself.
To be precise: Git requires that your "origin/main" and the actual
remote's "main" are the same, in order for you to push.
So the push then can just add the new commits you made, to the tip of
the remote. And the remote will be 100% the same as your local copy.
(Mind, your local repo has 2 remotes. So it has to memorized-remote
branches upstream/main and personal/main)
4) "git pull" and tracking
The local branch usually knows to which remote branch it belongs.
(called tracking).
That is, your local branch does not have to have the same name, it
could be called anything. In most cases such relationships are defined
by tracking (usually set at creating time, or when first pushing). The
name only matters in a few cases.
REMOTE (with someone's commit):
A - B - C - E (main)
LOCAL (without any commit by you)
A - B - C (main, origin/main)
Now if you do "git pull" it will get the commit "E". And the
"origin/main" will be pointing to that (since it will be the last we
have seen on the remote).
In this case your local "main" will also be changed. It will be "fast
forwarded" (i.e. it will move forward to the commit E).
(Note that fast-forward is considered a "merge", even though there is
no merge-commit)
But in case of
REMOTE (with someone's commit):
A - B - C - E (main)
LOCAL (with your commit)
A - B - C (origin/main) - D (main)
You get
LOCAL (after pull - before any update to your local "main")
A - B - C - E (origin/main)
\ - D (main)
The (versions of the) "main" branch have "diverged" => they are no
longer in a straight line.
"git pull" will by default merge them. It will create a Merge commit
"F":
(And that is what happened to you)
A - B - C - E (origin/main) - F (main)
\ - D - /
=> Avoiding merge commits by pull "git config pull.ff only"
https://wiki.freepascal.org/SVN_to_GIT_Cheatsheet#Recommended
And then "git rebase" or configure pull to do the rebase => check the
git manpages.
5) The error you got
Now your pushed the above merge commit to your forked remote
"personal"....
But that commit is not in our Lazarus git repo.
You local branch "main" is tracking our remote main.
- So "git pull upstream" will affect the local "main".
- "git pull personal" will not affect the local "main"
Anyway your your remote "personal" main now has a commit (the merge)
that is not in our remote "upstream" main.
And your local "main" is "up to date" with "upstream/main" (your git
status said so).
So your local main does not contain the merge commit (including all
your commits that were merged) that you pushed to "personal".
And that means you can't push this commit to personal.
6) Fixing your situation...
(and make sure you change "git pull" as above)
You want "personal/main" to be an exact copy of our "upstream/main".
So you need to move your commits to a new branch.
a) create the new branch.
git branch my-diverged-main main
Creating my-diverged-main to replace "main" (because we later
move/reset "personal/main", and then the new branch makes sure all
your commits are kept)
git branch my-work 9db8422087ac5c156d5d20f8c20feaf329f65ae2
The sha1 is from your online repo (but will be the same in your local
repo). It is the "Delete Laz_Hello.lpi" commit
You now have a branch "my-work" on that commit.
Create any other branches you may need for any local commits you have
made since (i.e. not yet pushed)
git push --set-upstream personal my-diverged-main
git push --set-upstream personal my-work
Now you have your work on your remote. As a new branch.
Check that gitlab shows this
Pushing my-diverged-main is optional. It only contains the merge-
commit, which likely you will not need.
b) change/correct personal/main
git push --force-with-lease personal main
This will override the remote branch.
That is, the current "main" on the upstream remote will be replaced
(deleted) by the new "main" as it is in your local repo (and that is
up to date with upstream).
Mind, it only "deletes" the old location (tip). of the branch.
The commits will remain, because you created new branches that also
contain the new commits.
If you had not created those new branches, then the commits would
become unreachable.
Once fixed, and assuming you do not add your own commits to main
again, then you will not need the "force with lease" again. It should
work with just
git push personal main
8) git switch vs git checkout
If your have a current version of git, I recommend you look up "git
switch" and use it instead of "git checkout".
But it's a personal decision.
See the wiki page that I linked.
----------------------------------------------------------------------
Martin_fr · 2022-12-28 15:08
Please note "--force-with-lease" is the fix ONLY in this case.
In other similar cases, you want to keep things, and integrate the
branches with each other => so you would need to do some merges or
rebases....
Not going into detail....
But do not use "--force-with-lease" for any other issues. (Unless you
really really know what you do).
And never ever use just "--force" for a push.
----------------------------------------------------------------------
Aruna · 2022-12-29 02:47
@Martin_fr I am speechless. No human can do what you just did. That
kind of analytical prowess is usually reserved for the Gods.
Thank you so very much for what you sent. That is probably one of the
best (if not the best) explanations and troubleshooting I have enjoyed
reading in a very long while. Wow, you should go teach university my
friend! Actually in an advisory capacity to the IT professors and
their departments.
Someday I will learn to think like this ( I wish... sigh!) That took a
lot of your time and some considerable analysis so for what it's worth
should we ever meet in person the food and beer is on me.
It is getting late here in Tronto and been a long day I am going to
crash soon. I will respond in detail tomorrow.
----------------------------------------------------------------------
Aruna · 2023-01-02 08:51
Happy New Year 2023 to everyone..
Quote from: Martin_fr on December 28, 2022, 04:03:01 pm git push
--force-with-lease personal main
This will override the remote branch.
That is, the current "main" on the upstream remote will be replaced
(deleted) by the new "main" as it is in your local repo (and that is
up to date with upstream).
Hi @Martin_fr I tried to follow your instructions to the letter and I
learnt a lot along the way I am very grateful for all the guidance and
explanations. But I am getting git errors again. Please see below.
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
aruna@debian:/media/aruna/linux-next/lazarus$ git push --force-with-
lease personal mainUsername for 'https://gitlab.com':
Aruna.HewapathiranePassword for
'https://Aruna.Hewapathirane@gitlab.com': Total 0 (delta 0), reused 0
(delta 0), pack-reused 0remote: GitLab: You are not allowed to force
push code to a protected branch on this project.To
https://gitlab.com/aruna.hewapathirane/lazarus.git ! [remote rejected]
main -> main (pre-receive hook declined)error: failed to push
some refs to 'https://gitlab.com/aruna.hewapathirane/lazarus.git'
I am on this branch below.
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
aruna@debian:/media/aruna/linux-next/lazarus$ git branch fixes_2_2
main* my-diverged-main my-work testall
I am going to reset the HEAD to my initial fork clone commit that
hopefully should get me back to a clean main with nothing pushed from
me.
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i d7e3d2231f
(HEAD -> main, personal/my-diverged-main, testall, my-diverged-main)
HEAD@{43}: clone: from
https://gitlab.com/freepascal.org/lazarus/lazarus.git
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i git reset
--hard d7e3d2231f
If I still start hitting brick walls after doing so I think it is time
to delete this repo and start with a clean slate? Thank you so much
for your time, I have learnt so much.
----------------------------------------------------------------------
JuhaManninen · 2023-01-07 20:08
Just Zip the TestAll project and upload it here.
----------------------------------------------------------------------
Aruna · 2023-01-15 13:22
Quote from: JuhaManninen on January 07, 2023, 09:08:37 pmJust Zip the
TestAll project and upload it here.
I will do that Juha but I want to get things working using GitLab
because at some stage I will have to start using Gitlab to contribute.
I have also started to study the testall code in depth and now I
realize all it actually tests are the mouse functions mostly but the
full code is IMHO a very useful resource so I will keep digging and
learning and hopefully zip an upload here but may not be any time
soon.
The other thing is I used a credit card and verified my identity in
Gitlab but now it tells me prepcache has failed. Please see attached
screenshot. Sigh... I suppose drop kicking Gitlab in the head is out
of the question eh?
----------------------------------------------------------------------
JuhaManninen · 2023-01-30 18:00
Sorry I failed to notice your post earlier.
Quote from: Aruna on January 15, 2023, 02:22:27 pmThe other thing is I
used a credit card and verified my identity in Gitlab but now it tells
me prepcache has failed. Please see attached screenshot. Sigh... I
suppose drop kicking Gitlab in the head is out of the question eh?
Do you mean you paid something for the account? You don't need to. A
free account is enough for these FOSS projects.
I also feel uncomfortable with the GitHub and GitLab interfaces and
server branches because I have not practiced much.
For you it would be much easier to skip all that and contribute with
patches. They are still fully supported as I wrote earlier. Create
local feature branches and switch between them. Sometimes rebase
against "main". When a feature or fix is ready, create a patch and
upload it to bug tracker or somewhere. Easy!
You can continue studying and improving the TestAll project also after
it gets added to Lazarus sources. Release early, release often. FOSS
development.
----------------------------------------------------------------------
Aruna · 2023-02-01 09:51
Quote from: JuhaManninen on January 07, 2023, 09:08:37 pmJust Zip the
TestAll project and upload it here.
Hello @Juha I have attached a testall.zip. Please see if you can get
this back into the main trunk when you have time. Thank you.
----------------------------------------------------------------------
Aruna · 2023-02-01 10:00
Quote from: JuhaManninen on January 30, 2023, 07:00:22 pmSorry I
failed to notice your post earlier.
No worries..
Quote from: JuhaManninen on January 30, 2023, 07:00:22 pmDo you mean
you paid something for the account? You don't need to. A free account
is enough for these FOSS projects. No no just used it to verify I am
who I say I am nothing was paid.
Quote from: JuhaManninen on January 30, 2023, 07:00:22 pmI also feel
uncomfortable with the GitHub and GitLab interfaces and server
branches because I have not practiced much.
For you it would be much easier to skip all that and contribute with
patches. They are still fully supported as I wrote earlier. Create
local feature branches and switch between them. Sometimes rebase
against "main". When a feature or fix is ready, create a patch and
upload it to bug tracker or somewhere. Easy!
You can continue studying and improving the TestAll project also after
it gets added to Lazarus sources. Release early, release often. FOSS
development.
I have sent in a testall.zip and once you get it added back to the
Lazarus sources I will start improving it. The testall.zip has all the
original files with no changes. I think what you have said will be
much easier than trying to get things working with Gitlab. So I will
do what you asked me to and try to send in patches
----------------------------------------------------------------------
JuhaManninen · 2023-02-04 11:46
Quote from: Aruna on February 01, 2023, 10:51:52 amHello @Juha I have
attached a testall.zip. Please see if you can get this back into the
main trunk when you have time. Thank you.
I placed it in lcl/tests/testall/ and tried to compile. I got :
Error: Can't open resource file "/home/juha/SW/lazarus/lcl/tests/test
all/../images/components_images.res"
Quote from: Aruna on February 01, 2023, 11:00:16 amI have sent in a
testall.zip and once you get it added back to the Lazarus sources I
will start improving it. The testall.zip has all the original files
with no changes. I think what you have said will be much easier than
trying to get things working with Gitlab. So I will do what you asked
me to and try to send in patches
I thought you fixed some issues for Linux, but adding the original
files is perfectly OK, too.
Yes, when you work with local feature branches and patches, you don't
need to create a fork in GitLab. Just clone the official repo like
everybody else and then work locally.
I do the same thing basically. I happen to have commit rights and thus
I do "git push" instead of uploading a patch somewhere.
I have many feature branches here. Most of them are experimental and
will never be used for the official repository.
----------------------------------------------------------------------
Aruna · 2023-02-04 13:37
Quote from: JuhaManninen on February 04, 2023, 12:46:01 pmQuote from:
Aruna on February 01, 2023, 10:51:52 amHello @Juha I have attached a
testall.zip. Please see if you can get this back into the main trunk
when you have time. Thank you.
I placed it in lcl/tests/testall/ and tried to compile. I got :
Error: Can't open resource file "/home/juha/SW/lazarus/lcl/tests/test
all/../images/components_images.res"This error is due to a path issue
because we moved the files into a new location lcl/tests/testall.
Instead of one level we have to now go up three levels so Lazarus can
find the *.res files. Fix is shown below. The file is testallform.pp
and line numbers are 171 and 172.
Original code below that causes error.
Code: Pascal [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i {$R
../images/laz_images.res}{$R ../images/components_images.res}
The fix is below.
Code: Pascal [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i {$R
../../../images/laz_images.res}{$R
../../../images/components_images.res}
Quote from: JuhaManninen on February 04, 2023, 12:46:01 pmQuote from:
Aruna on February 01, 2023, 11:00:16 amI have sent in a testall.zip
and once you get it added back to the Lazarus sources I will start
improving it. The testall.zip has all the original files with no
changes. I think what you have said will be much easier than trying to
get things working with Gitlab. So I will do what you asked me to and
try to send in patches
I thought you fixed some issues for Linux, but adding the original
files is perfectly OK, too. Yes I did but then I thought let us just
start from scratch the way it was. I did a git shortlog
examples/testallform.pp in branch fixes_2_2 and I think attribution is
important and I have no idea once we add the files I sent to
lcl/tests/testall if the git history of who did what and when will
remain intact? See below..
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
aruna@debian:/media/aruna/linux-next/lazarus$ git shortlog
examples/testallform.ppbart (6): Examples: Fix resource loading
in TestAll project. Examples: Start completely rewrting the
TestAll apllication. Examples: TestAll: add a test (work in
progress). Examples: TestAll: - make dummy procedures for all
tests and call them in the menu's onclick event - fix typo - refactor
- cleanup Examples: TestAll: more component tests. Examples:
TestAll: don't write an extra '$' in front of Key when logging Key
events. joost (1): general: Updated address of the Free Software
Foundation in copyright messages juha (3): LCL (mostly), Replace
Assert(False... with //DebugLn(... Now Assert can be used for its
original purpose again. IDE etc.: unify 3 dots in GUI string to
have a space ( ...). Examples: Fix compilation when function
wrappers in FileUtil are disabled (define NoLazUTF8Wrappers). Clean
uses sections. laurent (1): IDE: rename the images to avoid
overload lazarus (11): + added "testall" demo provided by
stoppok +Rebuilt from beginning
to V0.2 +Prepared for non existent components (total 60 components).
(Changes by Christer, commited by stoppok) * Fixed crash caused
by missing pixmaps * using resources now instead of xpm file *
enhanced testdialog for TBevel * basic test for TPaintBox stoppok
MG: minor fixes TPanel implemented. Basic graphic primitives
split into GraphType package, so that we can reference it from
interface (GTK, Win32) units. New Frame3d canvas method that uses
native (themed) drawing (GTK only). New overloaded Canvas.TextRect
method. LCLLinux and Graphics was split, so a bunch of files had to be
modified. + Enhanced testall-app with demo for TPanel, stoppok
MG: updated licenses MG: TNoteBook now starts with no Page and
TPage has no auto names MG: fixed compiling examples MG:
added interfaces unit marc (1): * Fixed compilation and some
memleaks martin (1): Examples: Fix testallform for fpc2.3.1
(issue #14184) mattias (7): fixed testall example renamed
LCLLinux to LCLIntf fixed testallbart (6): Examples: Fix
resource loading in TestAll project. Examples: Start completely
rewrting the TestAll apllication. Examples: TestAll: add a test
(work in progress). Examples: TestAll: - make dummy procedures
for all tests and call them in the menu's onclick event - fix typo -
refactor - cleanup Examples: TestAll: more component tests.
Examples: TestAll: don't write an extra '$' in front of Key when
logging Key events. joost (1): general: Updated address of the
Free Software Foundation in copyright messages juha (3): LCL
(mostly), Replace Assert(False... with //DebugLn(... Now Assert can
be used for its original purpose again. IDE etc.: unify 3 dots in
GUI string to have a space ( ...). Examples: Fix compilation when
function wrappers in FileUtil are disabled (define NoLazUTF8Wrappers).
Clean uses sections. laurent (1): IDE: rename the images to avoid
overload lazarus (11): + added "testall" demo provided by
stoppok +Rebuilt from beginning
to V0.2 +Prepared for non existent components (total 60 components).
(Changes by Christer, commited by stoppok) * Fixed crash caused
by missing pixmaps * using resources now instead of xpm file *
enhanced testdialog for TBevel * basic test for TPaintBox stoppok
MG: minor fixes TPanel implemented. Basic graphic primitives
split into GraphType package, so that we can reference it from
interface (GTK, Win32) units. New Frame3d canvas method that uses
native (themed) drawing (GTK only). New overloaded Canvas.TextRect
method. LCLLinux and Graphics was split, so a bunch of files had to
bbart (6): Examples: Fix resource loading in TestAll project.
Examples: Start completely rewrting the TestAll apllication.
Examples: TestAll: add a test (work in progress). Examples:
TestAll: - make dummy procedures for all tests and call them in the
menu's onclick event - fix typo - refactor - cleanup Examples:
TestAll: more component tests. Examples: TestAll: don't write an
extra '$' in front of Key when logging Key events. joost (1):
general: Updated address of the Free Software Foundation in copyright
messages juha (3): LCL (mostly), Replace Assert(False... with
//DebugLn(... Now Assert can be used for its original purpose again.
IDE etc.: unify 3 dots in GUI string to have a space ( ...).
Examples: Fix compilation when function wrappers in FileUtil are
disabled (define NoLazUTF8Wrappers). Clean uses sections. laurent
(1): IDE: rename the images to avoid overload lazarus (11):
+ added "testall" demo provided by
stoppok +Rebuilt from beginning to V0.2 +Prepared for non
existent components (total 60 components). (Changes by Christer,
commited by stoppok) * Fixed crash caused by missing pixmaps *
using resources now instead of xpm file * enhanced testdialog for
TBevel * basic test for TPaintBox
stoppokaruna@debian:/media/aruna/linux-next/lazarus$ I feel it is
important to keep this info but I do not know how we are going to do
this if we just plug the files into lcl/tests/testall? Or as usual I
am not seeing the obvious?
Quote from: JuhaManninen on February 04, 2023, 12:46:01 pmYes, when
you work with local feature branches and patches, you don't need to
create a fork in GitLab. Just clone the official repo like everybody
else and then work locally.
I do the same thing basically. I happen to have commit rights and thus
I do "git push" instead of uploading a patch somewhere.
I have many feature branches here. Most of them are experimental and
will never be used for the official repository.
I stopped trying to get Gitlab to work it is simply too time-
consuming and frustrating. Your way is very much simpler and hopefully
will work for me. Thank you.
----------------------------------------------------------------------
JuhaManninen · 2023-02-04 17:11
Quote from: Aruna on February 04, 2023, 02:37:24 pmThis error is due
to a path issue because we moved the files into a new location
lcl/tests/testall. Instead of one level we have to now go up three
levels so Lazarus can find the *.res files.
Yes, it was easy to fix.
QuoteYes I did but then I thought let us just start from scratch the
way it was. I did a git shortlog examples/testallform.pp in branch
fixes_2_2 and I think attribution is important and I have no idea once
we add the files I sent to lcl/tests/testall if the git history of who
did what and when will remain intact?
It will remain intact in "main" and in "fixes_2_2". Nothing will
change the existing history.
Anyway the TestAll project should be copied from "main" branch before
its deletion from examples directory, thus including all changes. Is
this version from there?
QuoteI feel it is important to keep this info but I do not know how we
are going to do this if we just plug the files into lcl/tests/testall?
Or as usual I am not seeing the obvious?
The version in lcl/tests/ will have its own commit history once we
start committing code.
----------------------------------------------------------------------
Aruna · 2023-02-04 17:43
Quote from: JuhaManninen on February 04, 2023, 06:11:35 pmAnyway the
TestAll project should be copied from "main" branch before its
deletion from the examples directory, thus including all changes. Is
this version from there? As it is right now in "main" branch if you
check for testall by running ls -alh examples/test* there is nothing.
Testall was removed at some point from "main" but it is still there
under branch "fixes_2_2" and I copied it from branch "fixes_2_2". I
vaguely remember asking where is "testall" and @dbannon pointed me in
the right direction by saying I can find it under branch "fixes_2_2"
but it is most definitely no longer in branch "main".
----------------------------------------------------------------------
JuhaManninen · 2023-02-04 23:39
Quote from: Aruna on February 04, 2023, 06:43:37 pmAs it is right now
in "main" branch if you check for testall by running ls -alh
examples/test* there is nothing. Testall was removed at some point
from "main" but it is still there under branch "fixes_2_2" and I
copied it from branch "fixes_2_2". I vaguely remember asking where is
"testall" and @dbannon pointed me in the right direction by saying I
can find it under branch "fixes_2_2" but it is most definitely no
longer in branch "main".
It got bugfixes in "main" branch before it was removed. Thus you must
go to the last commit before the removal and copy it. I even explained
it in some earlier post in detail.
----------------------------------------------------------------------
Aruna · 2023-02-05 11:43
Quote from: JuhaManninen on February 05, 2023, 12:39:26 amIt got
bugfixes in "main" branch before it was removed. Thus you must go to
the last commit before the removal and copy it. I even explained it in
some earlier post in detail.
I ran git log -S TestAllForm and got what is below..
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i commit
31328882fb8d3acace2ea1e906073c7c429fb146Author: Juha Date: Sat Mar 5 16:51:45 2022 +0200 Example projects
tested, categorised, metadata added, restructured by David
Bannon. commit 95ca76e85edc433d7d03f14daf28aafbcd92fa36Author: mattias
Date: Sat Oct 1 00:38:04 2005 +0000
added .lpi for examples git-svn-id: trunk@7869 - commit
09138261ffe900180e59df2d3c0ab21345d2c926Author: lazarus
Date: Tue Oct 29 08:22:33 2002 +0000
MG: added interfaces unit git-svn-id: trunk@3578 - commit
6c9464c470122f2f48889e91d031da545fbd9b4cAuthor: lazarus
Date: Fri May 10 06:57:51 2002 +0000
MG: updated licenses git-svn-id: trunk@1668
-aruna@debian:/media/aruna/linux-next/lazarus$
So I am guessing the commit I must go back to is commit
95ca76e85edc433d7d03f14daf28aafbcd92fa36 Author: mattias Date: Sat Oct 1 00:38:04 2005 +0000 ?
----------------------------------------------------------------------
JuhaManninen · 2023-02-05 12:52
Quote from: Aruna on February 05, 2023, 12:43:17 pmSo I am guessing
the commit I must go back to is commit
95ca76e85edc433d7d03f14daf28aafbcd92fa36 Author: mattias Date: Sat Oct 1 00:38:04 2005 +0000 ?
Don't go so far in history. See the third post in this thread for
details.
----------------------------------------------------------------------
Aruna · 2023-02-05 13:28
Quote from: JuhaManninen on February 05, 2023, 01:52:03 pmQuote from:
Aruna on February 05, 2023, 12:43:17 pmSo I am guessing the commit I
must go back to is commit 95ca76e85edc433d7d03f14daf28aafbcd92fa36
Author: mattias Date: Sat Oct 1 00:38:04
2005 +0000 ?
Don't go so far in history. See the third post in this thread for
details.
Oh my goodness you told me exactly what to do but I did not
understand this at that time, I do now. Thank you Juha.
----------------------------------------------------------------------
JuhaManninen · 2023-02-17 14:36
I added the latest TestAll project from "main" examples/ directory to
lcl/tests in c1e41c6f962c. Please test.
Why does it test only a small subset of LCL controls? The name TestAll
is misleading. Can you Aruna please take a look?
Further code improvements must happen as patches or merge requests.
----------------------------------------------------------------------
Aruna · 2023-02-18 21:20
Quote from: JuhaManninen on February 17, 2023, 03:36:10 pmI added the
latest TestAll project from "main" examples/ directory to lcl/tests in
c1e41c6f962c. Please test.
Juha thank you very much but what you added does not have the
necessary git history. You can see this below.
Code: Bash [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
aruna@debian:/media/aruna/linux-next/lazarus$ git log
lcl/tests/testall/testall.lpicommit
c1e41c6f962ce308ed3d81ea50b230be49a19f0fAuthor: Juha Date: Fri Feb 17 16:16:35 2023 +0200 LCL: Restore
TestAll project but this time in lcl/tests
directory.aruna@debian:/media/aruna/linux-next/lazarus$ I was busy
with work I did not have time to fix this. I will do so soon.
Quote from: JuhaManninen on February 17, 2023, 03:36:10 pmWhy does it
test only a small subset of LCL controls? The name TestAll is
misleading. Can you Aruna please take a look?
This was how I found the original source. Only 4 controls were tested
the others had placeholders but someone has to write code to test. If
you go through testallform_include.inc starting at line 117 you will
see the reason why. Some code is below.
Code: Pascal [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i
taCompImplemented: Array[taComponents] of Boolean = ( True,
//tacTarrow, True, //tacTbitbtn, True, //tacTbutton, True,
//tacTbuttonpanel, False, //tacTcalcedit, False,
//tacTcalendar, False, //tacTcheckbox, False,
//tacTcheckcombobox, False, //tacTcheckgroup, False,
//tacTchecklistbox, False, //tacTcolorbox,
Quote from: JuhaManninen on February 17, 2023, 03:36:10 pmFurther code
improvements must happen as patches or merge requests.
Understood and will comply. Thank you Juha.
----------------------------------------------------------------------
Aruna · 2023-02-19 14:48
Please disregard my concerns about the commit history in the earlier
reply. I just found out about git log --follow and this shows me the
history.
Code: Pascal [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i git log
--follow ../lcl/tests/testallform.pp
I have no idea if this will work every time but it does work for me
for now. Sadly I am unable to use git blame as there is no direct
commit history, I am trying to figure a work around. Maybe more
experienced folks can suggest ways to do so?
Quote from: JuhaManninen on February 17, 2023, 03:36:10 pmWhy does it
test only a small subset of LCL controls? The name TestAll is
misleading. Can you Aruna please take a look?
I took a look using git log testallform_include.inc and the reason why
is shown in line #6 given below..
Code: Text [Select][+][-]window.onload = function(){var x1 =
document.getElementById("main_content_section"); if (x1) { var x =
document.getElementsByClassName("geshi");for (var i = 0; i commit
96ba7a6b4036f65806c2720da31331a29de63e1dAuthor: bart
<9132501-flyingsheep@users.noreply.gitlab.com>Date: Sat Mar 5
13:09:33 2016 +0000 Examples: TestAll: - make dummy procedures
for all tests and call them in the menu's onclick event - fix typo
- refactor - cleanup git-svn-id: trunk@51826 -