- PeterMoulding.com
- Author
- Trainer
- Speaker
- Business Coach
- How to write a How To book
- PHP Courses
- Speaking
- Web Architect
- Australia
- Books
- Authors
- Akkana Peck
- Alex Berenson
- Andrew Nugent
- Ben Sanders
- Brock Clarke
- Chris Simms
- David Mercer
- Dianna Mullet
- Don Winslow
- Dori Smith
- Harlan Coben
- Jack McDevitt
- James Wines
- Jerry Yudelson
- John Grisham
- Kevin Mullet
- L. E. Modesitt Jr.
- Laurell K. Hamilton
- Marshall Karp
- Martina Cole
- Michael Marshall Smith
- Michel Roux Jr
- Nadia Sawalha
- Philip Pullman
- Raymond Khoury
- Richard North Patterson
- Robert Masello
- Sally Roth
- Sarah Langan
- Stella Rimington
- Stephen Booth
- Stephen King
- Stephen Leather
- T.C. Boyle
- Tom Negrino
- Tony Hillerman
- Urban Waite
- Val McDermid
- Valerio Massimo Manfredi
- Beginning GIMP
- Beginning Visual C++
- Culturalism
- Fiction
- A Drink Before The War
- A Talent for War
- Bag of Bones
- Blood and Ice
- Burn
- Dark Lady
- Dead Line
- Eclipse
- Empress of Eternity
- Exley
- Flipping Out
- Just One Look
- Nightfall
- Pet Sematary
- Savage Moon
- Skinwalkers
- Starvation Lake
- The Fallen
- The Gardens of the Dead
- The Jump
- The Last Templar
- The Mermaids Singing
- The Midnight Mayor
- The Secret Soldier
- The Summons
- The Terror of Living
- The Testament
- The Tower
- Under the Dome
- Virus
- AJAX and PHP
- Aging with Grace
- Food books
- Green Architecture
- Life Is So Good
- SQL: The Complete Reference
- The Backyard Bird Lover's Ultimate How-to Guide
- The Garden Gurus
- Authors
- Sustainability
- -18 hours left to decide the future of Australia
- Campbells vegetable stock or Massel vegetable stock?
- Carbon Sequestration
- Carbon tax for Australia is a fraud
- Copenhagen will fail
- Cost of living in Australia
- Dick Smith jumps on the population bandwagon
- Dry Run: Preventing the Next Urban Water Crisis
- Energy Saving Lights
- Garlic
- How many people can live in Australia?
- Its obsolete, throw it out!
- Julia Gillard offers 9.9 billion dollars bribe to Rob Oakeshott
- Laundry detergent
- Petrol or Diesel?
- Reflective foil batts kill
- RoHS
- Sea level to rise 3mm due to climate change
- Solar power
- Spring again in Sydney
- Sustainable fuels
- The CRUD Tax is back
- The people who make building regulations do not own houses
- Water efficiency
- Which insulation is safer, foil or wool?
- Will Australia reduce greenhouse gas emissions?
- Technology
- Android or Blackberry or iPhone or a flip phone?
- Apple versus Google 2011
- Cameras
- Cars
- Colour
- Burgundy
- Colour Blindness
- Colour Names
- Dulux colours
- Pantone colours
- Safe Colours
- Seculine ProDisk Mini colour balance card
- What Causes Colour Blindness?
- Hardware
- Batteries for the Digital Age
- Cables
- Cases
- Computer reliability
- Computrace
- Disks
- Astone ISO Gear 481E
- Best SSD for your notebook computer
- Disk block size
- Hitachi disk HDS722020ALA330
- LaCie USB 2.0 250 GB mobile hard drive design by F.A. Porsche
- SMART disk
- Samsung 2 TB HD204UI quiet low power disk for mass storage
- Seagate and Samsung merge disk business
- Select the right disk for your RAID array
- USB disk speed
- Western Digital WD20EARX 2 GB SATA 3 disk
- How long should computer hardware last?
- Keyboards
- Mainframe
- Memory cards
- Monitors
- Netbooks, notebooks, tablets, and xPads
- Network Attached Storage
- OLED Displays
- PC's are a thing of the past
- Printers
- Quiet
- Samsung Galaxy S
- Speed
- Television
- Tools
- USB
- Worst computer movies
- Xserve is dead. What next?
- Your backup will not work
- Z68 motherboards
- iPad or Acer Aspire One?
- IQ
- LG Intello Washing Machine
- Lack of a challenge
- Networks
- 802.11n wireless networking
- D-Link DIR-655 wireless router
- D-Link DWA-160 Xtreme N dual band USB adapter
- D-Link DWA-556 Xtreme N PCI Express desktop adapter
- MIMO
- NBN spends another $12 billion of our tax money on nothing
- National Broadband Network
- Netgear wireless modem router DGND3300 with 300 Mbps 802.11n
- Refrigerator kills wireless broadband
- Small Wireless Network
- TP-LINK TL-SG10005D 5 port gigabit switch
- TP-Link TL-WR1043N wireless N gigabit router
- Telstra Pre-paid Mobile Wi-Fi
- Where are the router plus proxy server combinations?
- Open Source documentation
- Software
- 7-zip
- Accounting
- Asterisk
- Audacity
- Backup software
- Bloat only in Windows
- CAD
- CDex
- Disk imaging software for copying and backup
- Exact Audio Copy
- Filezilla
- Firefox
- Java
- LibreOffice or OpenOffice?
- Linux
- 1 in 5 servers will ship with Linux
- Android phones outsell iPhone
- Another Move to Linux
- CentOS 5.5 installation on SSD and RAID 5
- Debian
- Debian 5.0.5 AMD64 installation
- Debian 5.06 installation
- Fedora
- Fedora or Ubuntu?
- Gnome or KDE?
- K9copy
- Linux 2.6.38
- Linux Gnome login settings lost
- Linux Mint
- Linux RAID, a rant
- Linux Speed
- Linux Time
- Linux reliability as demonstrated by Ubuntu 10.10
- Linux reliability as demonstrated by Ubuntu 11.4
- Linux still a struggle in 2011
- Linux workstation disk RAID 1
- Linux, NT, Windows, and SETI
- Linux, three years of progress
- London Stock Exchange switches to Linux
- Mandrake Linux 9.2
- The partition is misaligned by 48128 bytes - warning from Linux RAID
- Ubuntu
- How to fix the scroll bars in Ubuntu 11.4 Gnome
- Kubuntu 10.10 alternate installation on desktop with RAID 1
- POWbuntu
- Ubuntu 10.10 after 6 months use
- Ubuntu 10.10 alternate installation
- Ubuntu 10.10 desktop RAID 1
- Ubuntu 10.10 desktop RAID 5
- Ubuntu 10.10 desktop install on a netbook
- Ubuntu 10.10 desktop installation
- Ubuntu 10.10 netbook install on a netbook
- Ubuntu 10.10 server AMD64
- Ubuntu 10.10 upgrade to version 11.4 beta 2
- Ubuntu 10.4
- Ubuntu 11.10
- Ubuntu 11.10 first upgrade
- Ubuntu 11.4 after one month use
- Ubuntu 12.04 beta1 desktop amd64
- Ubuntu One
- Ubuntu by Microsoft?
- Ubuntu desktop upgrade 10.4 to 10.10 failed because I did not check the media
- Ubuntu strikes again
- Upgrade Ubuntu to Linux Mint 12 LDXE for extra speed
- Yes, use Linux but not that distribution!
- Nero
- OpenOffice
- OpenOffice is now Apache Office
- Project management
- Scribus
- Software for Windows and Linux
- Text editors
- Time
- Todo applications
- Tomboy notes
- Top text editors
- Version control
- VideoLAN VLC media player
- Visio
- Webmin
- Webmin installation on CentOS for Web development
- Webmin installation on Ubuntu
- What is the most popular open source software today?
- Windows
- Another Windows person goes Linux
- BAD_POOL_CALLER
- Cygwin
- Microsoft Malicious Software Removal Tool cannot find a common virus
- One of the developers of Windows XP is criminally insane
- There are unused icons on your desktop
- W32time
- Which Windows version?
- Windows 7 Home Premium
- Windows XP Stop 0x0000007B during installation
- Windows XP is a disaster
- Windows processes
- XML
- Zip, bzip, gzip, or 7zip?
- configFree
- Technology Succession Planning
- VoIP
- Web Sites
- Drupal
- Do Drupal themes have to use the GPL?
- Drupal 7
- A better search facility for Drupal
- Drupal - performance or flexibility
- Drupal 7 Fields are hard to fix
- Drupal 7 new features
- Drupal 7 ships on January 5
- Drupal 7.14
- Drupal 7.4 hits PeterMoulding.com
- Drupal function sequence
- The evolution of a module
- Undefined index: headers in DefaultMailSystem->mail() (line 54 of /modules/system/system.mail.inc).
- Undefined index: to in DefaultMailSystem->mail() (line 83 of /modules/system/system.mail.inc).
- implode(): Invalid arguments passed in DefaultMailSystem->format() (line 23 of /modules/system/system.mail.inc).
- Drupal 8
- Drupal Code Load Cut
- Drupal How To
- Drupal Modules
- Backup and Migrate
- Browscap
- CKEditor with Drupal WYSIWYG
- Captcha
- Cel
- Colorbox
- Content Construction Kit
- Content type
- Devel module for Drupal
- Drupal Rules as an automation language
- Drupal Spam add-on module
- Form alter to node
- IMCE
- IMCE Wysiwyg bridge
- ImageAPI
- Jdog
- Lightbox2
- Module variable
- Node Gallery Access
- Node_Gallery
- Path
- Path redirect
- Pathauto
- Pet
- Search
- Service links
- Session Variable
- Statistics
- Taxonomy
- Token
- Token ex
- Transliteration
- Trigger
- Watch
- Other modules
- Drupal Training
- Drupal access controls need a major rewrite
- Drupal coding tricks
- Drupal performance
- Drupal themes for the future
- Drupal.org colours
- Import existing data into Drupal
- Multiple Web sites made easy using Drupal multisite and the right start
- drupal_lookup_path()
- Adobe PDF
- Apache
- Apache Mahout
- Audi.com
- Bleet
- CSS Strikes Again
- CSS or xCSS
- Can you believe Facebook or email?
- Content Management Systems
- Databases
- Facebook scam
- Font
- Fonts
- HTML
- Install Apache, MySQL, and PHP 5 in Ubuntu 11.4 using the Ubuntu Software Centre
- Language Codes
- Marketing
- Memcache
- Nginx
- Open source development hits another roadblock
- Oscars
- PHP
- SPDY
- Search software
- Techoni.com.au
- Theme themes
- Things to hate on Web sites
- U.S. Patent No. 6,985,875
- Virtual Private Server
- Visible Improvement
- Web 4.0
- Web browser usage
- Web browsers
- Web site development
- Bluefish
- Crying over spilt code
- Eclipse and PHP
- Getting a Git client, a story of ancient technology and pain
- HTTrack
- MVC
- Netbeans
- PHP or ..., CakePHP/Symfony/ZF versus ...
- Programming
- Superfish
- Web browser emulators for testing your Web site
- Web development frameworks
- Web site books
- Web site development on your own computer
- Webmin or phpMyAdmin or cPanel for creating databases?
- aiki framework
- jQuery
- Views development - Learn Fields first
- Views development - Learn Actions and Rules
- jQuery .each()
- jQuery .has()
- jQuery .is()
- jQuery and Firefox Firebug
- jQuery children
- jQuery for people not using Drupal - Installation and getting started
- jQuery hover
- jQuery hover de-duplication example
- jQuery or CSS?
- jQuery performance
- jQuery tests
- Web site hosting
- Westpac Web site still broken after two years and ten months
- Wordpress wins another CMS survey
- Drupal
Getting a Git client, a story of ancient technology and pain
Submitted by Peter on Fri, 2011-12-16 22:02
Git is a version control system used for software. Git does have some advantages over it's predecessors but none of them are related to making anything easy. After wasting anywhere from several minutes per day up to several hours per day over many months, Git has not produced a single successful test.
The simplest test of version control is to save a file then restore it. Git failed 48 times out of 50. Git failed every time there was more than one file. Some of the files returned by git had absolutely no relevance to anything saved in Git.
Reviewed in this page:
Read about version control in Bazaar or Git or Mercurial for version control?
Git runs on a server. You access Git using a client. The process is similar to using an email client. Email clients are well developed and easy to use. Git clients are mostly locked in the previous century and are about as inviting as a visit to the dentist.
Git versus predecessors
The first common version control on Linux was CVS and it was primitive compared to basic commercial version control software at that time.People built a million add-on scripts for CVS but CVS lacked basic design features and was slow.
SVN was a small step up for Web based projects because SVN had some publishing features that fitted in with Web sites. SVN was still slow and lacked controls.
Git added excellent processing for a distributed environment. Git still lacked controls for allocation of work to members of a team. You could simulate those controls by controlling who could merge into a given repository. Git works for open source because anyone can copy down from the repository. Git works for networks of developers because groups of developers can merge code up to a repository for their area then the next layer of management can merge from several areas.
Neither Git nor any of the predecessors allow for allocation of a code change to a specific developer with all other developers locked out of that code for the duration of the change project. The Git approach can end up with massive amounts of retesting because you do not know who contributed what or when. Typically you implement an issue management system and tie the changes to the issue management system issue records then use the issue management history to decode the mess made by several incompatible changes arriving at the same time.
Why use a graphical user interface?
The graphical user interface was invented in the 1950s for air defence systems because a 1970s Unix style command line is too slow when the enemy is flying in with nuclear bombs. Xerox Parc developed the first modern GUI for their Alto computers. The Alto interface was cloned by a bunch of companies including Tandy, DRI, Apple, Commodore, and Microsoft. Microsoft built their GUI to fit the available hardware and the first successful GUI based operating system was Windows 95 when affordable hardware could keep up. The Atari was the second most successful GUI based computer and most of that success was based on games. Apple released the Lisa as their principle GUI computer and it bombed because of Apple's impossible pricing. Apple then tried again with the Mac but the early Macs wasted so much time that the sales people selling Macs invented all sorts of fraudulent techniques to sell Macs. I unfortunately wasted an hour while the sales person tried to demonstrate what would take two minutes on my IBM PC.
The big turning point in GUIs occurred in the early 1990s when good graphical systems were reduced to a single chip. Considering the early SAGE systems cost $12 billion dollars for just a few machines, the 1990s GUI chips cost $10 per computer and Windows 95 capitalised on that low cost. Apple did no convert to the modern way until the next century when they copied everyone else and became the last computer company in the world to adopt the Intel/AMD platform. As Apple said at the time, the Intel/AMD platform was 2.45 times faster than the junk Apple were selling before.
The GUI interface has a whole lot of advantages. You can easily show a range of items with colour coding, icons, and highlighting to indicate their use. The user can then select the exact items required. The user then selects a single control to perform changes on all the selected items. Compare that with a command line interface where the user can only select based on patterns related to naming conventions that break the semantic approach and may not be consistent anyway, as demonstrated at a training course where the teacher was unable to complete this type of action on hist own computer due to some slight variations away from his artificially imposed naming conventions.
I am not saying the command line interface is impossible for all projects, just that it is impractical for modern projects with multiple people from different backgrounds trying to work together. A good GUI application overcomes all the limitations of a command line user interface.
Linux and Windows
This section is for programs that work the same on Linux and Windows so you can move between the two without having to learn to use a different tool. These programs might also work on other operating systems including normal Unix and OSX Unix.
SmartGit
SmartGit is one of the best Git clients but costs money and has all the disadvantages of commercial software. If SmartGit was free open source software with no licensing restrictions, it would be my first choice for use across multiple operating systems. unfortunately SmartGit version 2 does not work on Linux and the version 3 preview does not let you do some of the basics, including add files. Try SmartGit after they release 3.1.
To use SmartGit, I would have to buy a licence for every one of my computers, despite being able to use only one at a time, and the cost would be about $300 per year. The cost would be reasonable if I used the client professionally but I would use it only to donate the odd bit of software to free open source projects. SmartGit does run on most operating systems and could be the choice for a professional about to migrate from Windows to Linux or OSX to Windows.
An additional consideration is the cost when you bring other people into a project and give them the same tools. Would you pay $60 per person for a tool they will use for only a few minutes each day for a few days? I find it is better to start everyone using tools they can use long term.
EGit
EGit is part of the Eclipse project. If you use Eclipse and only Eclipse, use EGit. Eclipse is too big for many of my projects and I use a lot of other systems. EGit looks like it will only be of use inside Eclipse and have to use something else for other projects. Eclipse has a PHP add-on product but the combination is painful. After many attempts at using Eclipse for PHP, I give up. Eclipse requires Java, another reason to not use Eclipse.
Git-gui
Git-gui is supplied with Git but is impossible to use when installed by the default installation on Ubuntu Linux. On Ubuntu, Git-gui is not installed by default with Git. You have to select the GUI as an optional extra. Without the GUI option, Git is an unusable teletype application from back in the days before your grandmother learned to program. When you do remember to select the GUI option, the GUI does not appear on any menu and Git remains trapped in the early days of the previous century.
NetBeans
NetBeans is based on Java but the latest version, version 7, appears to be reliable. NetBeans has a Git interface. NetBeans has a PHP component and, for PHP development, the NetBeans PHP combination works better than the clunky Eclipse PHP combination. The NetBeans PHP download is only half the size of the Eclipse PHP download because NetBeans does not assume you want the Java junk. See the NetBeans download comparison at netbeans.org/downloads/index.html.
I am recording my experience in NetBeans. Netbeans gives Bluefish good competition on any computer fast enough to run Java applications but is still not fast enough to start for a quick edit. On a two year old computer with a fast processor and fast magnetic disks, NetBeans is noticeably slower than Bluefish for most things. My next computer, still on my assembly bench, will have a processor three times faster and SSD storage five times faster. The speed difference between Bluefish and NetBeans might be less important.
Linux
There are no Git clients worth using on Linux unless you are willing to page $60 per computer or happen to be already buried in Eclipse. OSX users have even less choice. Windows users have access to some nicer Git clients. Comparing Linux Git clients to the best free Windows Git client is embarrassing, especially for someone who has recommended Linux. Think about a person with a Samsung Galaxy S II smartphone standing next to someone with a tin can and some string. The person with the tin can is bragging about adding masking tape to the sharp edges of the tin can so the can will not cut your ear off. A Git client on Linux is sort of like the tin can fitted with the masking tape.
git-cola
git-cola is the choice for Python fans. For everyone else, it has a painful introduction. You are dropped onto a tiny option box with just three buttons and no information. I made some attempts to use it then deleted it.
Gitg
Gitg is closer to a normal application but has no documentation you can read before installing it. The help button just directs you to a Web page that says someone is thinking about creating a Web site one day.
Giggle
Giggle has a nice logo and users say it is nice for viewing Git but useless for making changes.
Windows
Tortoisegit
Tortoisegit would be the most common Git client on Windows but most people do not notice it because it appears as if built into Windows Explorer. It is great when you use the right applications and workflow. If you use open source editors that work across multiple operating systems, they do not show the Tortoisegit status indicators and you lose the advantage of Tortoisegit.
I use several editors on Linux. Some of them have the advantage of allowing plug-ins to add features. Some also run on Windows so you can use the same applications on your corporate computer. Unfortunately none have a plug-in for Git. To be exact, they have only a command line interface, which is close to the tin can idea but without the benefit of masking tape.
Git Extensions
Git Extensions is similar to Tortoisegit but not as well developed. Users of Git Extensions talk about reliability compared to old versions of Tortoisegit then then mention going back to the command line for things that they could do in Tortoisegit without having to memorise stupid commands. The current Tortoisegit is reliable compared to the other Git clients and Git Extensions has not progressed as fast as Tortoisegit.
Mac OSX
GitX
There is a fashion accessory company, named Apple, who used to be in the computer business and sell a free version of Unix with a decorative theme for the user interface. GitX, from gitx.frim.nl, is their Git GUI themed to fit the OSX theme. If you use OSX then try GitX.
The GitX Web site says GitX is similar to GitK, a Git GUI for KDE on Linux. Linux is practically the same as Unix and Linux is free, unlike the OSX version of Unix. Linux offers several user interfaces instead of the one in OSX. There are Git GUIs for most of the user interfaces in Linux. I use the Gnome interface after several disastrous attempts at using KDE plus a confusing user interface on the main KDE applications I attempted to use. Neither GitK nor GitX interest me. User comments about GitX frequently mention having to revert to the command line due to the limitations of GitX.
Conclusion
In the Git client area, you can use Windows and work in a 1990s style interface or you can use Linux/Unix/OSX and work in a 1970s or 1950s style computing environment. This is one area where there is a desperate need for someone to write a usable cross platform application designed for this century.
Git is too dangerous to use for version control.








