i want to backup the typo3 Filesystem with FTP/Shell.
The structure is as follows:
FOLDERS
fileadmin
t3lib
typo3_src
typo3
typo3conf
typo3temp
uploads
FILES
index.php
...
Now the 3 folders and 1 file are SYMLINKS and therefore will not be Backuped by my Script
t3lib
typo3_src
typo3
index.php
Known:
all the SYMLINKS go back to typo3_src/typo3_src-6.1.1
My Questions:
Are those SYMLINKS static so i only have to save them once?
How would you backup under this condition and how to restore?
thanks
As long as you do not need to patch the files on your own (which should usually not happen) they are static. So you can save a copy from get.typo3.org/6.1.1 there is no need to copy the sources/symlinks. I guess it would be enough to just save which version you has been used, because you can get the sources from get.typo3.org again (but i do not know, what happens with outdated versions).
Related
We have an internal discussion going here and we are somewhat torn on the best practice for using .gitignore on projects that contain a lot of files (like a CMS).
Method 1
Method 1 would be to purposefully .gitignore all files that come standard with your build. That would generally start like:
# ignore everything in the root except the "wp-content" directory.
!wp-content/
# ignore everything in the "wp-content" directory, except:
# "mu-plugins", "plugins", "themes" directory
wp-content/*
!wp-content/mu-plugins/
!wp-content/plugins/
!wp-content/themes/
# ignore these plugins
wp-content/plugins/hello.php
# ignore specific themes
wp-content/themes/twenty*/
# ignore node dependency directories
node_modules/
# ignore log files and databases
*.log
*.sql
*.sqlite
Some staff members like this approach since if you create something outside of the standard files, for example like a /build folder, then it would automatically be detected for inclusion. However, writing custom theming and plugins require you to add a few layers to this file to "step in" to the folders you want to keep, and generally, the file is a bit messier to read.
Method 2
Method 2 ignores everything, and then you whitelist what you want in the repo. That would look like
# Ignore everything, but all to descend into subdirectories
*
!*/
# root files
!/.gitignore
!/.htaccess.live
!/favicon.ico
!/robots.txt
# theme
!/wp-content/themes/mytheme/**
/wp-content/themes/mytheme/style.css # Ignore Compiled CSS
/wp-content/themes/mytheme/js # Ignore Compiled JS
# plugins
!/wp-content/plugins/my-plugin/**
# deployment resources
!/build/**
Some staff like this since it's cleaner, you have to purposefully add something (which makes accidental adds harder), and it also in effect shows you your .git folder structure.
What is the best practice? Which method do you enjoy and would you recommend doing one over the other?
The second method is the best practice, when it comes to exlude some folder contents of gitignore rules.
It better reflect the following rule:
It is not possible to re-include a file if a parent directory of that file is excluded.
To exclude files (or all files) from a subfolder of an ignored folder f, you would do:
f/**
!f/**/
!f/a/sub/folder/someFile.txt
Meaning: you need to whitelist folders first, before being able to exclude from gitignore files.
It is clearer, shorter (unless you have a large number of folder to whitelist)
What if it is a Joomla install with a large amount of directories and files?
Or what if a core upgrade adds new files or folders
Don't forget you can have multiple gitignore files, one per folder.
That means you can mix and match both approaches.
And you have:
http://gitignore.io/ (which does blacklist when it comes to Joomla application)
github/gitignore (same approach for Joomla)
The ideal .gitignore file, is the one that does not exist.
For some reason, you're deeply intermingling files you want to track via source control, with files you DON'T want to track.
This, I think, is the source of your sadness.
You are mixing git's intended purpose, which is versioning of programmer-edited files, with deployment, which is intended to get the files where they belong in the correct directories.
Your question is not clear, as to whether you think the Wordpress core files should be versioned. I'm assuming not, since that's how you've set up your .gitignore.
Your question is also not clear, as to whether you are deploying a web site, or shipping plugins as a product. Those are both different use cases, and they require different types of versioning. If this is a deployed web site, you SHOULD be versioning Wordpress along with everything else. If you are shipping a plugin or a theme, then you should have a test suite of plenty of different Wordpress versions to test against.
I think your source control system should be set up, solely to track just the plugins/* and/or themes/* files that go into your distribution. Zipping that folder should give you the plugin asset that your customers download.
To debug your plugins, there should be a deploy step in your IDE that copies each of those tracked files, into a Wordpress install at a location you choose. This permits you to more easily test against different Wordpress versions.
You're reducing workflow problems, to trying to choose a .gitignore. Fix the problem at the root by getting the workflow right.
My problem is that the portable version of visual studio code don't load my settings I had copied from the folder %APPDATA%/code/user.
I loaded the .zip data and extracted the folder. I added a data folder into the extracted folder of VS Code. It's in Visual Studio Code\data. In there i copied the folder "user" from %APPDATA%/code/ and renamed the user folder into "user-data". Then I started code and the usersettings are not loaded.
The command .\code.exe --user-directory .\data\user-data won't work.
Is this a bug or did I do something wrong?
In portable mode, the --user-directory command linte option is ignored.
From the documentation:
--user-data-dir <dir>
Specifies the directory that user data is kept in, useful when running as root. Has no effect in Portable Mode.
Instead, use the default location of user data for a portable install and copy your user data to that directory (from a previous comment it seems like you've already done so successfuly).
For anyone wishing to use a different user data directory when in portable mode, symlink-ing the user data folder should be a viable option if on a linux-like platform.
(Trivia: this was at first reported as bug, after which the documentation was updated, rather making it a feature.)
You can simply create a folder called data in the root folder with
VS Code.
After the startup, the files with standard settings will be
created in the data folder.
Then you can just copy the settings from the folder %AppData%\Code\User to the folder data\user-data\User.
To migrate already installed extensions, copy the contents of the %HomePath%\.vscode\extensions folder to the data\extensions folder.
So today my extension_builder overwrote my entire TCAs while saving, so I did something stupid: I changed the folder name of my extension via winscp and uploaded the backupfolder of my extension I made yesterday. Now I get the error message
Oops, an error occurred!
TYPO3 Fatal Error: Extension key "icingaconfgen" is NOT loaded!
I know the error could be fixed with changing the state of the extension in the PackageStates.php to inactive, but the problem is: The extension doesn't appear in this file. Interesting enough the foldername I changed my old old extension folder to ("x") appears in the file as inactive though. What should I do now?
I assume you meant the extension key. This key is used in differnt files of an extension.
If you rename an extension folder the old key still is used in some files. TYPO3 analyses all extensions and joined (active) parts into cached files, so be careful as what is active executed and what is stored on the disk can differ (always clear all caches - there are a lot of caches!)
One part of your problem may occur of two folders with the usage of the same extension key. here especially the foder you renamed, as there the foldername and the internal extension key do not match.
TLDR:
NEVER rename an extension folder inside of typo3conf/ext/.
If you want to backup an extension move it to e.g. typo3conf/ext.bak/.
Always clear all caches after such a manipulation. (With newer versions of TYPO3 it is at least typo3temp/Cache/Code/, but also have a look at typo3temp/autoload/ and the internal caches tables in the database.)
If there is no non-existent extension listed in your PackageStates.php you should be fine after clearing TYPO3s cache.
Go to the install tool and do it under "important actions".
Or remove the contents of the typo3temp folder.
I success installing moodle 3.3.2+ in my VPS. I want to backup those moodle but not knowing which folders should i backup every day...
it is i think not wise to backup all folder in moodle instalation since it would be has very big size..
so could anyone suggest which folder is essential that got updated dynamically and should be include in my backup plan.
thanks in advance
Moodle stores uploaded content in a moodledata folder. To check the path to that folder, take a look in config.php file in the root Moodle directory and search for $CFG->dataroot. This folder as well as the database should go in the backup. The Moodle code itself (unless you have custom changes you want to keep) can be obtained from moodle.org if it is necessary.
See the Moodle docs for more info: https://docs.moodle.org/33/en/Site_backup
Is there any way to exclude a folder while creating an xpi file using cfx xpi. The documentation doesnt provide any info on this.
I am asking this because in the directory created by cfx init i also have a directory as HTMLTestPages in which i have some test JavaScript since we cannot debug the add-on sdk JavaScript.
Every time i have to create an xpi file i have to remove the folder and again place it. furthermore, if we has this folder on svn this is more problematic.
searching on google shows this bug listed to exclude vim temporary files and in the comments they are also discussing excluding any files starting with .(period). So is there any way to check if this is working in add-on sdk 1.6.1?
The current Add-on SDK version will only add very specific subdirectories to the XPI package, namely data and lib. If your project also has a subdirectory foo or files at the top level with names that the SDK doesn't recognize - these will be simply ignored.
Now if your files are located inside a known subdirectory like data - in this case they will be included in the package. The Add-on SDK has hardcorded rules concerning files and directories that should be excluded, you can see them under python-lib/cuddlefish/util.py:
IGNORED_FILE_PREFIXES = ["."]
IGNORED_FILE_SUFFIXES = ["~", ".swp"]
IGNORED_DIRS = [".git", ".svn", ".hg"]
This means that file names starting with a period or ending with either ~ or .swp will be ignored. But as far as directories goes - only .git, .svn and .hg will be ignored (and this definitely works). If you want an additional directory to be ignored then the only way will be to edit python-lib/cuddlefish/util.py and add it to IGNORED_DIRS list (something that you will unfortunately have to repeat after each SDK update).