{{toc numerate=1}}
Goal is that all administrators can perform the necessary actions properly and according the project policies.
* GUI + CLI
===Repository===
1. **https://github.com/WackoWiki/wackowiki** <-- main
2. https://sourceforge.net/p/wackowiki/code/ <-- mirror
3. https://bitbucket.org/wackowiki/wackowiki/ <-- dev
====Legacy====
interwiki.conf
* ##Revision## --> Mercurial
* ##Commit## --> Git
%%(sql)
UPDATE doc_page SET body = REPLACE(body, 'source:default/', 'source:master/')
%%
====Layout====
====.gitattributes====
%%
* text eol=lf
*.png binary
*.gif binary
*.ico binary
.gitattributes export-ignore
.gitignore export-ignore
composer.json export-ignore
composer.lock export-ignore
%%
====.gitignore====
%%
# WackoWiki
/cache/*
!/cache/.htaccess
/cache/config/*
!/cache/config/.htaccess
/cache/feed/*
!/cache/feed/.htaccess
/cache/page/*
!/cache/page/.htaccess
/cache/query/*
!/cache/query/.htaccess
/cache/session/*
!/cache/session/.htaccess
/cache/template/*
!/cache/template/.htaccess
/file/backup/*
!/file/backup/.htaccess
/file/global/*
!/file/global/wacko_logo.png
/file/perpage/*
!/file/perpage/.htaccess
/file/thumb/*
!/file/thumb/.htaccess
# Eclipse IDE
.buildpath
.project
.settings/
# PHPStorm IDE
.idea
*.iml
%%
If you are trying to ignore changes to a file that's already tracked in the repository (e.g. ##config.php## file that you would need to change for your local environment but you would never want to check in these changes) than what you want to do is:
%% git update-index --skip-worktree <file>%%
===Differences to Mercurial===
====Purge the last commit====
%%
git reset --hard HEAD^
git push origin -f
%%
%%
git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479
git push --force
%%
a specific repo:
%% git push https://git.... --force %%
====Clone particular version of remote repository====
##git clone -b branch_or_tag_name repo_address_or_path##
%%
git clone -b 6.1.4 https://bitbucket.org/wackowiki/wackowiki.git
git clone -b 6.1.4 https://github.com/WackoWiki/wackowiki.git
%%
====Reset local repository branch to be just like remote repository HEAD====
%%
git fetch origin
git reset --hard origin/master
%%
===Github===
====Workflow====
file:/git_workflow.png
====Rational====
Pro
* almost all libs we use are on Github
* API
Contra
* lock-in
* GitHub GUI no longer supports languages other than English.
====Settings====
((https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token Creating a personal access token))
Personal access tokens function like ordinary OAuth access tokens. They can be used instead of a password for Git over HTTPS, or can be used to authenticate to the API over Basic Authentication.
https://bitbucket.org/blog/deprecating-atlassian-account-password-for-bitbucket-api-and-git-activity
====Two-factor authentication (2FA)====
file:219820201-6fe7f80a-cb6b-4bb9-bd56-984ed917e6a5.webp?right&500
https://github.blog/2023-03-09-raising-the-bar-for-software-security-github-2fa-begins-march-13/ - mandatory
https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication
2FA methods
* **TOTP**
* SMS
* **security keys**
* GitHub Mobile
F-Droid
* ((https://f-droid.org/packages/org.fedorahosted.freeotp/ FreeOTP))
* ((https://f-droid.org/en/packages/com.beemdevelopment.aegis/ Aegis Authenticator))
Linux
* GNOME Authenticator
* ((https://apps.kde.org/de/keysmith/ Keysmith)) (KDE)
===Import from Mercurial===
====Settings====
file:/merge_rebase.png
1. ((https://help.github.com/en/github/administering-a-repository/requiring-a-linear-commit-history Requiring a linear commit history))
2. ((https://help.github.com/en/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address Setting your commit email address))
* %%commit eae3fd3461492b2396b66f9d7d7441f611775005
Author: vendeeglobe <54716082+vendeeglobe@users.noreply.github.com> 2019-08-24 17:28:56
Committer: vendeeglobe <54716082+vendeeglobe@users.noreply.github.com> 2019-08-24 17:28:56%%
===Workflow===
file:/Org/Tools/Repository/Git/feature_branches.png
===Testing===
1. merge pull requests
2. strip an unwanted commit
===CLI===
{{include page="!/GitCommands"}}
===GUI Clients===
* ((!/Client Clients))
====IDE====
https://wiki.eclipse.org/EGit/User_Guide
file:/eclipse_workspace_wackowiki.png
((/Org/Tools/Repository/Git/Client/Eclipse Working with Eclipse))
===Backup Solution===
Mitigate lock-in
===Resources===
1. ((https://en.wikipedia.org/wiki/Comparison_of_source_code_hosting_facilities Comparison of source-code-hosting facilities))
1. ((https://en.wikipedia.org/wiki/Comparison_of_version_control_software Comparison of version-control software))
self-hosting
2. https://forgejo.org/
3. https://gogs.io/
4. https://onedev.io/