Mediabistro Git Configuration: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
No edit summary
 
Line 133: Line 133:
[[Mediabistro Blogs Configuration]]
[[Mediabistro Blogs Configuration]]


[[Category:GIT]]
[[Category:Git]] [[Category:Mediabistro]]
[[Category:Mediabistro]]

Latest revision as of 23:41, 23 April 2013

Configuration[edit]

Logins & workflow[edit]

ssh: [uname]@wmbdev1.iworld.com

Git repositories (web interface) l/p:email/super-basic

Git on mediabistro wiki (including basic workflow)

Repositories[edit]

After logging in with SSH repos are found at

/www/[SITENAME]/git/[USERNAME]/[SITENAME]/

E.g. if my username is dbarchowsky and I need to work on the blogs:

$ cd /www/blogs/git/dbarchowsky/blogs/

Cloning an existing repo[edit]

How to start working on an existing repo for the first time.

  • ssh to wmbdev1.iworld.com
  • Navigate to the appropriate directory and create a sandbox.
    Using insidefacebook as an example:
$ cd /www/insidefacebook/git/

$ mkdir dbarchowsky $ cd dbarchowsky

  • Clone the repo.
$ # the argument to "git clone" comes from the project proeperties found on git.iworld.com
$ git clone git@git.iworld.com:insidefacebook.git
  • In the case of insidefacebook this creates a root directory "insidefacebook" with another "insidefacebook" directory inside of that. It was necessary to install the root "insidefacebook" directory in /www/insidefacebook/git/ and then rename the root "insidefacebook" directory to "dbarchowsky" to create the sandbox.
  • Copy a wp-config.php file from an existing sandbox.
  • No edits are necessary to the new copy of wp-config.php. Optionally edit it to make WP_DEBUG true.
  • Create a branch for the new task.
$ cd insidefacebook
$ git branch
$ # response should be "* master"
$ git co -b tm[TASK_ID]
$ git branch
$ # response should be " master" followed by "* tm[TASK_ID]"
  • Tar up the repo.
$ tar -czvf insidefacebook.tar.gz insidefacebook
  • FTP to the server.
  • Download the tar file.
  • Uncompress the tar file in the local working directory.
  • Create a new PHP project in NetBeans.
    • Set the run configuration for the project such that the files are uploaded to the sandbox on wbmdev1.iworld.com when they are saved.
    • It's not necessary to have the project in a git repo locally. The repo is maintained on the sandbox on wmbdev1.iworld.com.
    • After a file is uploaded, at the command line on the wmbdev1.iworld.com server:
$ git status -s
$ # the response should include the file that was uploaded

Basic workflow for a new task[edit]

Update Git repo and create new branch[edit]

  • Log in with SSH.
  • Navigate to the appropriate Git repo (see Repositories)
  • Get latest version of code
$ git co master
$ git pull
$ git co -b tm[TASK_ID]

Make edits with NetBeans IDE[edit]

NetBeans remote connection settings for wmbdev1.iworld.com
NetBeans run configuration for wmbdev1.iworld.com

Checking in edits[edit]

$ git status -s 
$ git add [PATH]
$ git commit -m "[task title]"
$ git push origin tm[TASK_ID]
  • The convention is to copy the task title from the task details and use that for the commit message.

Moving changes to preview (for review)[edit]

$ cd /www/[APPLICATION]/git/preview/
$ git fetch
$ git merge remotes/origin/tm[TASK_ID]

Now the changes will be visible at http://preview.blogs.mediabistro.com/[BLOG_TITLE]/

Documentation & release notes[edit]

  • QA Links: http://preview.blogs.mediabistro.com/[BLOG_TITLE]/
  • Application Changes: http://git.iworld.com/blogs/commits?ref=tm[TASK_ID]

Syncing a sandbox repo with the work of others[edit]

Scenario:

  • I start working in my sandbox/repo using my own branch.
  • Someone else works on the same set of files in their sandbox/repo.
  • Now I need to make additional edits.
  • The goal is to make sure that my edits don't overwrite the other work done in any other sandboxes.
  • This assumes that once they were done with their work they pushed it out to master.
$ git co <mybranch>
$ git fetch
$ git rebase remotes/origin/master

More information on git rebase: Documentation: 3.6 Git Branching - Rebasing

See Also[edit]

Mediabistro Blogs Configuration