10 year(s) ago
长话短说,我们主要介绍下Pomodoro的学习资料: 书: 45-page book Cheat Sheet: one-page cheat sheet 网站: The Pomodoro Technique website. A personal time management approach known as The Pomodoro Technique is becoming quite popular with agile practitioners. Pomodoro includes a number of practices similar to those used by an agile team: time-boxing, frequent opportunities to inspect-and-adapt, estimation, a preference for low-tech tools, and an emphasis on maintaining a sustainable pace. Francesco Cirillo began developing the technique in the 80's, while he was a student. He was looking for a way to improve the quality of his study time and cut down on the distractions and interruptions that kept him from focusing.So I made a bet with myself, as helpful as it was humiliating: “Can you study – really study - for 10 minutes?” I needed objective validation, a Time Tutor, and I found one in a kitchen timer shaped like a pomodoro (the Italian for tomato).Over the next few years the technique evolved until about 1992, when it took the basic form that it still holds today. In Pomodoro, work is accomplished in uninterrupted 25-minute sessions called Pomodoros. At the end of each Pomodoro, there is a short break. After every set of 3 or 4 Pomodoros, there is a longer break. The technique includes some lightweight planning and tracking as well. At the beginning of the day, a list of the day's objectives is created and then estimated in terms of how many Pomodoros it will take to accomplish. Tasks that will take more than seven Pomodoros should be broken down. Tasks that will take less than one Pomodoro should be grouped together until there is a full Pomodoro's worth. Interruptions and distractions are dealt with by quickly recording them in a way that they can be handled after the current Pomodoro is over. On the rare occasions when an interruption can't be handled in this manner, the current Pomodoro is stopped and considered void. As Francesco says, the next Pomodoro will go better. Over the last couple of years, the Pomodoro Technique has caught the attention of the agile community. Staffan Noteberg's session on the technique was so popular at Agile2008 that it was selected to be re-run at the end of the conference. At Agile2009 Staffan again presented on the technique, as did Renzo Borgatti with a session called: You say tomato, I say Pomodoro.
9 year(s) ago
CI持续集成在敏捷开发有巨大意义。 通过实施CI持续集成,我们可以保证客户的反馈尽早获得,与客户进行“现场”需求分析。 但是由于传统版本控制工具在多人提交时候会出现效率下降,因此持续集成(也即快速反馈需求)的一个关键实现目标就是有一个快速高效的版本控制工具,在这点上git要比svn有优势。 首先他是一个离线式的版本控制工具,本地和服务器都可以进行提交。那么在关键性的地方我们可以进行提交,集成确认问题。 在实际项目实施过程中。我们发现: hudson作为持续工具很好很强大,针对其接口进行二次扩展可以很方便的完善系统的开发和应用。 不仅仅体现在版本控制,发布管理,还可以实现项目自动生成,变更。 通过api远程获得数据,组装对应的产成品也不是问题。(当然这个脱离了其初衷了)
9 year(s) ago
以下文字写的很完整,很详实。供开发者学习。管理维护人员借鉴。
Subversion Introduction: |
Subversion Commands: |
Command | Description |
---|---|
svn --help | List Subversion commands |
svn help command Also: ? or h | Help on given "command" |
svn add filenamesvn add directory | Add a file or directory to Subversion CM control. Must also perform: svn ci filename (or svn commit) to upload the file or directory. File will not be available in the repository until a "commit" is performed. If adding a directory, the directory and all of its contents recursively are added. i.e.: svn ci directory svn commit directory svn commit . |
svn blame filename svn blame -r RevisionNumber filename Also: praise, annotate, ann | Show file contents with revisions annotated with author information. |
svn cat filename | List contents of file under Subversion control. |
svn checkout http://node-name/repos/svn/trunk/parentPath/path This creates: path/file1 path/file2 ...svn checkout http://node-name/repos/svn/trunk/parentPath . This creates: path/file1 path/file2 ... Note the difference a "." makes. svn checkout file:///repos/svn/trunk/path/ svn co -r 497 http://node-name/repos/svn/trunk/path file-name Also: svn co https://..., svn://..., and svn+ssh:// MS/Windows: svn co file:///c:/repository/project/trunk | Checkout every file from the path and subdirectories specified below. Creates "working" copy of files and directories. Checkout a repository.Use option "-r" to specify a specific revision other than the latest. The URL "svn://" communicates with an SVN server (port 3690) The URL "http://" comunicates with the Apache server and modulemod_dav_svn (port 80) [more common server] |
svn cleanup | Cleanup subversion files resulting from escaped processes and crashed. |
svn commit filename svn commit --message "Message goes here." filename svn commit -m "Message goes here." filename svn ci filename1 filename2 filename3 svn ci . | Check-in (commit) local "working" file, files or directory and contents (recursively) into Subversion repository. Atomic, i.e. all committed or none, no incomplete check-in. |
svn copy source destination_clone Also: svn cp ... | Copy file or directory tree. One can copy from one local working copy to another or to repository server URL's. The sources and destinations can be working copies or URLs. |
svn copy http://host/repos/project/trunk http://host/repos/project/tags/TagName-1.4.5 -m "Tag Release 1.4.5" | Tag a release. Takes a snapshot of the repository and assigns a name. This can be performed at any directory branch. |
svn copy . http://host/repos/project/tags/TagName-1.4.5 -m "Tag Release 1.4.5" | Tag a release. Takes a snapshot of your local working copy and assigns a name. This can be performed at any directory branch. |
svn delete filename svn delete directory Also: del, remove or rm svn rm http://host/repos/project/trunk/file-or-directory | Delete file from repository. The UNIX command rm file-name. Must perform a "commit" to update the repository and local working directory with the changes. i.e.: svn commit . |
svn diff filename svn di filename | Show file diffs between SVN repository and your file changes using GNU file diff format. Use GUI diff tools as shown below. |
svn diff -r rev1:rev2 filename | Show file diffs between specified versions. Example: svn diff -r 456:459 subfn.cpp Using GUI diff tool: svn diff -r 457:459 --diff-cmd kdiff3 file-name |
svn diff filename > patch-file | Generate patch file used by the patch command. |
svn export directory | Export directory tree to your file system but it will not be a "working directory" under SVN control. |
svn export -r Rev-Number http://node-name/path | Export directory tree of specified version and create local directory tree and files not under SVN control. |
svn import local-directory http://node/repos/svn/trunk/directory | Add directory (and files in it recursively) to path in repository specified. |
svn info filename | Display information about file or directory. (Date modified, author, revision, path in repository.) Can not specify a URL. |
svn list directory svn list file-name | List file or directory of files in repository. Used to browse repository before checkout. If current directory is given (svn list ./), then Subversion will list the repository URL of the current directory. |
svn list -r RevisionNumber directory | List directory of files in repository in specified revision. |
svn lock filename -m "comment as to why its locked or by whom" (Comment is not required but is often useful) | Lock file to grant exclusive access to one and forbid all others. A commit will unlock the file (unless the "--no-unlock" option is used). A lock can be removed with the commands: svn unlock filename, svnlook and the svnadmincomands (i.e. List: svnadmin lslocks and remove: svnadmin rmlocks filename). |
svn log filename svn log . svn log http://URL/path/file svn log -v . svn log -r RevisionNumber http://URL/path/file | Show the Subversion log messages for a set of revision(s) and/or file(s) and/or all directory contents in repository. List verbose. Includes list of all files in change Shows the file changes associated with revision number. |
svn merge http://url/path/branch1 http://url/path/branch2 working-local-dir svn merge file1@revJ file2@revK svn merge -r 414:411 http://url/path working-dir svn merge -r 413:HEAD file-name | Merge directory changes into your current working directory or merge a file in Subversion into the file in your working directory. If target is not specified, the identical basename or current directory is assumed. Used to incorporate changes checked in which are not accounted for in your file or to merge branches. Example using GUI merge tool: svn diff -r 459:454 --diff-cmd kdiff3 --extensions '-m' file-name Next, tell subversion that the conflicts have been resolved: svn resolve file-name Finally, check-in file: svn ci file-name or abort changes: svn revert file-name |
svn merge --dry-run -r 414:413 http://url/path | Test merge. No changes are made to your local working copy but shows Subversion feedback as if merge was performed. |
svn merge -r 414:413 http://url/path svn merge -r 414:413 . | Undo changes committed in revision 414. |
svn mkdir directory svn mkdir http://URL/directory | Create a new directory under version control. |
svn move directory1 directory2 svn mv directory1 directory2 svn mv file-old-name file-new-name | Rename or move a file or directory. Moves/renames file/directory in repository and in local work area. Must perform svn ci file-new-name after the move for changes to to take place in repository. |
svn revert filename | Undo changes in local work files. Throw away local changes. |
svn resolved filename | Run this command after resolving merge conflicts. Next "commit" your changes. |
svn status svn status -u svn status -u . svn status -uq . | Show status of file changes in current directory and recursively in directories below.
Show out of date file info: svn status --show-updates
(equivalent: svn status -u)
-u: Determines status by comparing your local repository with the server repository. Without this option, the status shown will only be the changes you have made in your local repository.-q: Quiet. Do not print "?: File/directory not under version control" or "!: File/directory missing" extraneous information.
First collumn:
|
svn switch http://server/new-branch svn switch --relocate http://server/old-path http://server/new-path | Switch your local working copy to mirror a new repository branch instead of main trunk or previous branch. Also allows you to point your repository to a new path on the server if the server path changes since you performed a check-out. |
svn update svn update filename svn update -r458 filename svn update --ignore-externals ./ | Migrate all updates from Subversion repository to your local copy (recusively for all files in the current directory and all below it). If there have been updates to the svn repository since you downloaded the files, subversion will give you the opportunity to merge. Status of files will use the coding as stated above for "status". Files marked with a "C" (conflict) should be merged of reverted. If merged then one can perform a "resolve" and then a "check-in". If a file name is specified, only that file is updated. Can also syncronize to a specified revision given by -r. Use --ignore-externals to avoid the slow processing of externals to a potentially slow distant internet server. |
U file.h C file1.cpp G file2.cpp ? a.outYou will see:
Subversion Peg revisions: |
Subversion Properties: |
Property | Description | ||||
---|---|---|---|---|---|
svn:ignore | A newline separated list of file patterns to ignore. List of files/directories to be ignored by svn status | ||||
svn:keywords | Valid RCS style keywords are:
|
||||
svn:executable | Ensure file attribute is executable. Possible values: ON, OFF Example: svn propset svn:executable ON app.exe | ||||
svn:eol-style | One of 'native', 'LF', 'CR', 'CRLF'. Specify and maintain specified line ending for text file.
|
||||
svn:mime-type | The mime type of the file:
|
||||
svn:needs-lock | Prevents conflicts for files which can not be contextually merged. i.e. photos, binaries, object libraries. | ||||
svn:externals | List of files or directories pointed to. Locate repository where directory specified should be retrieved. The directive propset is not required:svn propedit svn:externals local-target-dir
|
Command | Description |
---|---|
svn propdel PropertyName file-name svn propdel --revprop -r RevisionName http://url/path Also: pdel, pd | Remove property name from files or directories. Remove properties on file in repository. |
svn propedit PropertyName file-name svn propedit --revprop -r RevisionName http://url/path Also: pedit, pe | Edit property name of files or directories. Edit properties on file in repository. |
svn propget PropertyName file-name svn propget --revprop -r RevisionName http://url/path Also: pget, pg | Print value of property name of files or directories. Print properties on file in repository. |
svn proplist file-name svn proplist * svn proplist --revprop -r RevisionName http://url/path Also: plist, pl | List properties of file, files or directory. |
svn propset PROPNAME PropertyValue file-name svn propset PROPNAME --revprop -r RevisionName PropertyValuehttp://url/path svn propset svn:mime-type text/html file-name.dat Also: pset, ps | Set properties of file or directory. Set mime type for a file in the repository. Must perform a commit to upload changes to the repository.Set file properties so that "^M"'s are removed upon check-in: svn propset svn:eol-style LF file-name.txt See YoLinux Subversion server configuration tutorial: No ctrl-M. |
Subversion and Graphical diffs for Linux: |
1) File differences since checkout: |
|
|
2) File differences between two revisions: |
.. ... [helpers] editor-cmd = gedit diff-cmd = /opt/bin/diffScript diff3-cmd = /opt/bin/diff3Script ... .. |
|
.. ... [helpers] diff-cmd = echo ... .. |
3) Conflicts, file differences and merge: |
... [helpers] diff-cmd = svndiffwrapper diff3-cmd = svndiffwrapper ... |
List of graphical diff and merge tools: |
Subversion GUI interfaces for Linux: |
... set cvscfg(editor) "xterm -e vim" set cvscfg(tkdiff) "tkdiff" |
Subversion Security Tips: |
[auth] store-auth-creds = no |
|
Subversion utility commands and scripts: |
Command | Description |
---|---|
svnversion local-path | This svn admin command will produce a compact version number for a working copy. Lists range of versions, adds "S" if switched, "M" modified. |
svnchangesince | Shows the changes to the subversion repository since the local copy was last updated. |
svnlastlog | Displays the last log message that pertains to the current working copy. Simplified svnlastchange. |
svnlastchange | Displays the last log message and a unified diff of the changes made in the last commit. |
svn-clean | Removes all the files and directories that are not in Subversion. |
|
Subversion Best Practices: |