Switching between developer environment Windows/Ubuntu - mysql

I have a PC with a dual boot: Win 8.1 and Ubuntu 14.04 and I have some project in PHP & mySql and sometimes I need to develop under ubuntu (but I usually prefer Windows) but I need to share the files and db's between the two os.
In share I mean if I change some php files or rows in the database that must be visible in both OS. Is it possible?
Extra thing: The most beautiful thing would be if I could get the mercurial in this thing.

Liquibase for proper versioning of DB-changes in both OS
Mercurial in both OS
External Mercurial hosting (Bitbucket?) for intermediate repository and backup
Good editor or IDE, in which you can configure EOL-style (in order to have same EOL in Windows and Linux, different by default)
Code in active OS, commit changes to local Mercurial, push to remote.
Before starting work in another OS - pull collected changes from remote

Related

Should I install MariaDB to my git repo, or locally / individually to all development computers?

I am starting work on a website that will use MariaDB for storing information (no sensitive information), and would like to keep everything in my git repo.
Originally, I planned on installing MariaDB to the separate computers that I plan to develop on (my desktop and laptop), but decided that it may be easier to store all of MariaDB (the program and the databases) in the git repo, so that one would just need to clone the repo and run MariaDB from the repo just like they would run Node, but I have not found any information on how to do this.
My questions are (1) should I install MariaDB and its databases to my git repo, instead of installing MariaDB in /usr, and the database in /var/lib/mysql, and (2) how would one do that?
Instead of attempting to put a mariadb runtime environment inside your version control, consider using docker to describe how to configure an appropriate mariaDB installation. I use makefiles atop that to contain the commands I use to build and run the docker but you coould just as easily use a shell script. Finally, provide a dataabase load script that loads your test database from a text file within the repo.
using docker to describe runtime environments for your application and dependencies is awesome. It strikes a great balance between having an incomplete git repo, and having to put binaries and database data in your version control. You wouldn't want to track changes to the underlying maria db files, anyway, so best not to commit them. You can build the docker containers you need on every workstation you use without much trouble, your automation around creating them provides a mechanism to ensure consistency, and by loading a database with the correct test data every time you develop your app, you'll have a better development process and less schema and data related changes. It works great, I do nothing but docker driven development these days.

Install MySQL Automatically on WIN, Linux, macOS

I want to use MySQL for an electron app in production and thus, if the client machine doesn't has MySQL already installed on it, then the app will not be able to function. So, is there any way to execute a auto-install MySQL script that installs MySQL on the client machine, even if its not already installed.
Since the app has to be cross-platform, so I am looking for a standard or minimum effort procedure (to speed up the process) to achieve the above, during first-time-app-startup on Windows7+, Ubuntu 14+ and macOS.
I found the following ways to auto-install:
Windows : Link
Linux & macOS: Create a bash script that runs before first-time-startup of the app. (Although, it will check whether MySQL instance is already present on the machine or not)
Looking for a better option than the above mentioned ones.
You may wish to consider the BitNami MySQL distribution; I have always used their VMs when I went after their products, but stand-alone installers are offered for most platforms (including Linux).
(Edit: It seems that the installer for MySQL is offered only for Linux x64)

Launch Beyond Compare(Win) for Mercurial Merge(Linux) using XServer

I've beyondcompare licence for my windows machine and I can't use that licence for linux installation. I work on linux server via putty from my windows system.
I could launch linux visual merge tools like meld using X server. But I'm looking for a way to use X server/X11 to launch beyondcompare from my putty session. In short, I want to launch a windows application itself from the linux env over putty.
My last choice would be to pull changes to my windows machine and do a merge on windows; push it back. But it would be nice if I could launch beyondcompare from linux.
Any Ideas?
It isn't possible to launch a diff/merge in the Windows version of Beyond Compare from a Linux system via SSH. There are three possible workarounds:
Upgrade your license to a multi-platform license and use the Linux
version of Beyond Compare.
Run the Windows version of Beyond Compare on your Windows machine and access the files on the Linux machine using the SFTP support built into Beyond Compare Pro.
Install Mercurial on your Windows machine, then check out files and
diff/merge from there. See the Using Beyond Compare With Version
Control Systems article to configure BC as the
diff and merge tool for Mercurial on Windows.

How to setup a box and 3 machines as a web development environment for a small team

Extended title: How to setup a box with (Windows7 + Apache + VisualSVN + MySQL + PHP) and 3 machines with (MacOs/Windows7) and Dreamweaver CS5 as a web development environment for a small team
These are my thoughts. Please forgive my ignorance, I still don´t have completly clear all the concepts.
1. I need to setup a web development environment for a small team of 3 web developers. The staging and live environments will be in a remote server under an external hosting company (probably Amazon).
2. Our first project is a blog with Wordpress
3. I've installed XAMPP in the box and can be accessed like this (http://dev.company.com/xampp)
4. I've installed Wordpress and can be accessed like this (http://dev.company.com/blog)
5. I've installed VisualSVN in the box and can be accessed like this (http://dev.company.com:8080/svn)
6. I don´t know how to import files for the first time to my repositories in the box (c:/repositories/blog)
7. VisualSVN includes Apache. I don´t know if I should turn off the Apache of XAMPP or if should install another version of VisualSVN without Apache
8. I don't know if I should keep my repositories at C:\repositories or c:\xampp\htdocs.
9. I've read something about hooks? to copy the files from the repositories to the htdocs? Can anybody explain this process?
10. Would it be a good option to keep all the files always in the box? or it is a better option to check out the files to the machines?
11. When setting up Dreamweaver to connect to the SVN Server, do I have to point to the trunk, branch or the name of the repository? Do I have to setup a different connection for each branch?
12. How can we include images and PSD's in the repositories?
When we start a new project we usually just checkout files on clients and commit the changes to the server when finished editing. This way people can just edit files on their own machine (without other users slowing stuff down).
Can't you just do a Linux install for the webserver (CentOS or something like that?). Windows 7 seems so heavy / unfitted for webdevelopment server.
We usually keep the repo out of the webroot.
XAMPP really???
Just my two cents...
It's strongly not recommended to use Apache HTTP server bundled to VisualSVN Server for anything else than Subversion server. So you have to install VisualSVN Server and XAMPP.
Just keep repositories in C:\Repositories. If you move them to htdocs all repository will be accessed for everyone who have access to XAMPP.
Common practice is to checkout working copy to htdocs folder, configure permissions to deny access to .svn and then run svn update in post-commit hook in VisualSVN Server.

Can you 'push' to network share using Mercurial on 64bit Windows 7?

We are in the process of upgrading from Windows XP x86 to Windows 7 x64, and I'm testing for compatibility problems with our current workflow.
Currently, we store central Mercurial repositories on a network share, clone copies to our workstations, and push our changes back to the network-based repositories. This works perfectly in WinXP, but in Win7 I consistently get an error message when pushing back to the network share:
pushing to t:\datamgt\automat\Kevin\SampleRepo
searching for changes
[Error 32] The process cannot access the file because it is being used by another process: 'T:\datamgt\automat\Kevin\SampleRepo\.hg\journal.dirstate'
I'm using TortoiseHG 1.1.1 and Mercurial 1.6.1023.
I've been able to push to repositories stored on the same workstation, but not to the network share repo. If possible, we'd prefer not to go to a webserver-based repository - it's an up-hill fight to get new software added to our servers.
Pushing to a network share is possible, but not recommended by the Mercurial team.
See the "shared disk" part in Publishing Repositories in the Mercurial wiki:
generally restricted to intranets, not
generally recommended due to general
issues with network filesystem
reliability
At my workplace, we are keeping our HG repositories on a network share (on a Windows 2003 server) as well because it was the easiest to set up. We're doing this for about one and a half year now, and we never had problems like yours.
But at home, I have a network share on a NAS (it's accessible from Windows and it looks and feels like a Windows share, but the NAS actually runs on Linux). I had no problems for a long time, but since a few weeks I'm having similar errors like you (with a different error message though).
I posted this on the Mercurial bug tracker, and I was told that my problem is probably caused by the fact that my NAS runs on Linux, because they don't know of any problems with real Windows shares:
On real Windows shares (served by
Windows) there doesn't seem to be a
problem (never heard of others having
problems doing that).
So maybe your problem is caused by something similar as well.
What kind of Windows share is it that you try to push to? Is it really on a Windows machine?