Most Popular in Linux
-
Tizen 1.0 hands-on: Can Samsung and Intel?s mobile OS compete with Android?
-
Two EA Games Arrive in Ubuntu 12.04 LTS
-
Obama calls Romney auto bailout claim an 'Etch-a-Sketch moment'
-
Olympia torch lighting starts London countdown
-
Fedora Project is naming names
-
Moderate Taliban says majority of group wants peace
-
How to Sync Files to Amazon S3 on Linux
-
Development Release: GNOME 4.0 Beta
-
Romney faces lengthy to-do list as likely GOP pick
-
Linux Users Beware: Patch New Samba Flaw 'Immediately'
Help me help my colleague
My colleague uses a Windows editor for writing code and a Unix system to run it. He has practical issues with version control. Suggestions? Colleague (PhD student) is currently working on a large development task and I would like him to use version control (git) for 1) his own sanity and mine 2) so that the rest of the group is able to use/track his changes over time.
We are working in a research lab and I have a relationship halfway between "mentor" and "manager" with him. However we are both reporting to the same supervisor, who does not care about the issue at all. Our group uses "horizontal development" meaning that peer self-organization is expected and encouraged.
Longish circumstances below, TLDR at the end.
Current situation
The project involves a Unix-oriented C++ program, with (mostly) test-driven development. The code must thus be compiled and run on a Unixish system. We have a development server where colleague has a home directory and all dependent tools installed (by me). One "reference" copy of the source tree is hosted using git on another repository server on the network; other team members have local copies on their desktop and already have functional workflows.
His current setup is as follows:
A. he made once a repository checkout of the project in his Unix home directory.
B. he then made a copy of that checkout on his Windows desktop.
C. he edits and investigates code on his Windows desktop.
D. whenever he wants to test his code, he:
E. whenever he has to commit his code to the repository, he:
Needless say, the pain in #E means that commits happen seldom, if ever. Also, lack of a proper backup solution on the Windows system means that he has no incremental vision of his work, and commits populate huge swaths of changes at once, which pose a large obstacle to understand his development steps.
Constraints
Questions
A. as a starting point, how can I smooth his workflow? For example:
B. are there any Chinese language documentation / resources to 1) explain the problems that version control solves 2) introduce the use of distributed version control to newcomers?
C. assuming the computer is powerful enough, what combination of host OS and virtual machines would you suggest to create a work environment that he could run entirely on his desktop?
-- TL;DR --
Chinese colleague without software engineering background edits on Windows, and manually copies code on Unix to compile, test, and commit to git. Workflow is terribly inefficient, impossible to track his changes in git over time.
How to transcend the cultural and experience issues to improve his work environment?
We are working in a research lab and I have a relationship halfway between "mentor" and "manager" with him. However we are both reporting to the same supervisor, who does not care about the issue at all. Our group uses "horizontal development" meaning that peer self-organization is expected and encouraged.
Longish circumstances below, TLDR at the end.
Current situation
The project involves a Unix-oriented C++ program, with (mostly) test-driven development. The code must thus be compiled and run on a Unixish system. We have a development server where colleague has a home directory and all dependent tools installed (by me). One "reference" copy of the source tree is hosted using git on another repository server on the network; other team members have local copies on their desktop and already have functional workflows.
His current setup is as follows:
A. he made once a repository checkout of the project in his Unix home directory.
B. he then made a copy of that checkout on his Windows desktop.
C. he edits and investigates code on his Windows desktop.
D. whenever he wants to test his code, he:
copies the modified files manually with a graphical SCP client for Windows (ie a: navigate with point-and-click to each directory with modified files, b: navigate with point-and-click to the same directory on the server, then c: find the modified files based on "modified" timestamp, then d: copy the files using drag-and-drop)
using a remote session in PuTTY, compile and test
for every error in the Unix terminal, go back to the Windows editor and investigate.
E. whenever he has to commit his code to the repository, he:
makes a new checkout of the latest version from the repository in his Unix homedir
runs "diff" between the new repository version and his Unix working dir
using the Windows editor, manually copies the changes from the diff file to each file in turn
tests as per D# above
then commit.
Needless say, the pain in #E means that commits happen seldom, if ever. Also, lack of a proper backup solution on the Windows system means that he has no incremental vision of his work, and commits populate huge swaths of changes at once, which pose a large obstacle to understand his development steps.
Constraints
- in our organization any Windows desktop must be centrally administrated by our IT department, which means we can't install 3rd party tools that require administrator rights to install. In contrast (and strangely) Mac and Linux desktops are not administered by IT and are under the sole responsibility of the user.
Said colleague has freshly graduated from China:
- he suffers from a perceptible lack of initiative-taking about the problem, which I attribute to his experience in China restricted to vertical work hierarchies exclusively. Note that he does take initiative about writing code, just not about anything related to version control and his strange windows-unix workflow.
the Windows box is heavily Chinese-customized; he is used to (and uses) the Chinese input methods. He also uses all kinds of Chinese-speaking Windows-specific software: chat clients, translators, and other things I don't understand.
- he suffers from a perceptible lack of initiative-taking about the problem, which I attribute to his experience in China restricted to vertical work hierarchies exclusively. Note that he does take initiative about writing code, just not about anything related to version control and his strange windows-unix workflow.
our research group has always been flexible as to work environments, meaning there were no hard "must do" or "don't" with regards to tools, desktop setup, etc. It is assumed that all members have appropriate skills to set up their environment. Therefore it would be difficult to mandate a specific work environment to my colleague unless it is mandated to everyone else, which everyone else but him would loathe.
Questions
A. as a starting point, how can I smooth his workflow? For example:
- is there some form of git client for Windows that 1) he could integrate in his workflow and 2) that does not require admin rights to install?
are there other synchronization facilities that would make his testing cycle simpler?
B. are there any Chinese language documentation / resources to 1) explain the problems that version control solves 2) introduce the use of distributed version control to newcomers?
C. assuming the computer is powerful enough, what combination of host OS and virtual machines would you suggest to create a work environment that he could run entirely on his desktop?
-- TL;DR --
Chinese colleague without software engineering background edits on Windows, and manually copies code on Unix to compile, test, and commit to git. Workflow is terribly inefficient, impossible to track his changes in git over time.
How to transcend the cultural and experience issues to improve his work environment?
More Stories in Ask Metafilter: Linux
- Chumby & Last.fm
- How do I increase partition size in a RAID 1 array with minimal downtime?
- Boot ubuntu to the commandline
- I don't have the money, honey--but it's got the time.
- Flash Video Troubles
- halp i losted mah bricks
- SSH with telnet -e as a ForceCommand: secure?
- Whoa, Whumpscutt followed by Vivaldi is jarring...
- TCP WTF
- Linux (Ubuntu) filter: Why aren't my login supplementary groups correct?
Most Popular Stories
A fix for those "Pairing Record Missing" errors
Splitting the file
AIX KSH: 0403-029 There is not enough memory available now
AIRbudz: A safer way to listen to your tunes
sed substitution for specific record
You're the Pundit: Are we going to see form factor changes?
Earthlapse is a window on the Earth from space
Lulzlover Hacked Coalition of Law Enforcement, Data Dumped for 2,400 Cops & Feds
Rumored three iPad model lineup could cut entry price to $299
sendmail long text