Overlaps.md #1

  • //
  • guest/
  • lester_cheung/
  • wiki-archive/
  • markdown/
  • Overlaps.md
  • Markdown
  • View
  • Commits
  • Open Download .zip Download (4 KB)

A file activity analysis tool{{ Project | Overlaps |

  curator  = Matt Attaway                          |\   path     = //guest/matt_attaway/scripts/overlaps.rb          |\   download = //guest/matt_attaway/scripts/overlaps.rb |\   language = Ruby                |\   license  = BSD                                 }}

About This Project

This tool identifies files that are changed multiple times a day by more than one user. Files that frequently have overlaps may be candidates for refactoring.

Usage

overlaps [ -p port ] [ -u user ] ( [ -s date ] | [ -w weeks ] | [ -d date ] ) [ -e date ] [ -v ] [ -m minimum ] <Perforce path>

: -s Start date. Incompatible with -w. One week before end date by default. : -e End date. Today by default. : -w Number of weeks before end date to examine. : -v Show detailed list of overlapping files. : -d Date. Gives overlaps for a single day. Overrides all other date related flags. : -m Minimum number of overlaps required to be flagged. 2 by default.

Example

Here's an example showing the last four weeks of development. Each number in the output represents the number of users who submitted changes to one overlap file.

ruby overlaps.rb - w 4

2009/06/23  22222222222222
2009/06/24  2222
2009/06/25  2222222
2009/06/26  4222222
2009/06/27  
2009/06/28  
2009/06/29  22222
2009/06/30  2
2009/07/01  222222222
2009/07/02  22
2009/07/03  
2009/07/04  
2009/07/05  
2009/07/06  22
2009/07/07  222222222
2009/07/08  222222222
2009/07/09  3222
2009/07/10  2
2009/07/11  
2009/07/12  
2009/07/13  322
2009/07/14  32
2009/07/15  222
2009/07/16  2222
2009/07/17  3222222
2009/07/18  
2009/07/19  
2009/07/20  4222
2009/07/21  3

We can see a few small overlaps per day with an occasional "spike" to 3 or 4. Let's look at the day with four overlaps in more detail.

ruby overlaps -d 2009/06/26 -v

2009/06/26  4222222
2       //depot/main/doc/guinotes.txt
2       //depot/main/doc/apinotes.txt
2       //depot/main/src/msgs/help.cc
2       //depot/main/src/net/tcpip.cc
2       //depot/rel2.0/doc/xmlnotes.txt
4       //depot/rel2.0/doc/guinotes.txt
2       //depot/rel2.0/doc/usage.txt

Most of the overlaps were thankfully just release notes. Maybe a release is coming up soon?

Let's take a look at our src path for the last week to see how many overlaps are in our source code

ruby overlaps -v //depot/main/src/...

2009/07/15  222
2       //depot/main/src/lib/rlib.cc
2       //depot/main/src/net/tcpip.cc
2       //depot/main/src/net/udp.cc
2009/07/16  2
2       //depot/main/src/net/tcpip.cc
2009/07/17  3222222
2       //depot/main/src/conf/local.cc
2       //depot/main/src/conf/remote.cc
2       //depot/main/src/lang/eng.cc
2       //depot/main/src/lang/frn.cc
2       //depot/main/src/lang/ger.cc
2       //depot/main/src/lang/rus.cc
3       //depot/main/src/net/tcpip.cc
2       //depot/main/src/msgs/help.cc
2009/07/18  
2009/07/19  
2009/07/20  4222
2       //depot/main/src/db/tables.cc
2       //depot/main/src/msgs/usage.cc
2       //depot/main/src/msgs/help.cc
4       //depot/main/src/net/tcpip.cc
2009/07/21  3
3       //depot/main/src/net/tcpip.cc

tcpip.cc appears to be a popular file. It may be worth looking into why so many people have been touching it recently.

{{ License | BSD | 2009 | Matt Attaway }}

{{ RecentChanges | //guest/matt_attaway/scripts/overlaps.rb }}

<Category:Perforce> <Category:Ruby>

A file activity analysis tool{{ Project | Overlaps |

`  curator  = Matt Attaway                          |`\
`  path     = //guest/matt_attaway/scripts/overlaps.rb          |`\
`  download = //guest/matt_attaway/scripts/overlaps.rb |`\
`  language = Ruby                |`\
`  license  = BSD                                 }}`

### About This Project

This tool identifies files that are changed multiple times a day by more
than one user. Files that frequently have overlaps may be candidates for
refactoring.

### Usage

`overlaps [ -p port ] [ -u user ] ( [ -s date ] | [ -w weeks ] | [ -d date ] ) [ -e date ] [ -v ] [ -m minimum ] `<Perforce path>

:   **-s** Start date. Incompatible with -w. One week before end date
    by default.
:   **-e** End date. Today by default.
:   **-w** Number of weeks before end date to examine.
:   **-v** Show detailed list of overlapping files.
:   **-d** Date. Gives overlaps for a single day. Overrides all other
    date related flags.
:   **-m** Minimum number of overlaps required to be flagged. 2
    by default.

### Example

Here's an example showing the last four weeks of development. Each
number in the output represents the number of users who submitted
changes to one overlap file.

    ruby overlaps.rb - w 4

    2009/06/23  22222222222222
    2009/06/24  2222
    2009/06/25  2222222
    2009/06/26  4222222
    2009/06/27  
    2009/06/28  
    2009/06/29  22222
    2009/06/30  2
    2009/07/01  222222222
    2009/07/02  22
    2009/07/03  
    2009/07/04  
    2009/07/05  
    2009/07/06  22
    2009/07/07  222222222
    2009/07/08  222222222
    2009/07/09  3222
    2009/07/10  2
    2009/07/11  
    2009/07/12  
    2009/07/13  322
    2009/07/14  32
    2009/07/15  222
    2009/07/16  2222
    2009/07/17  3222222
    2009/07/18  
    2009/07/19  
    2009/07/20  4222
    2009/07/21  3

We can see a few small overlaps per day with an occasional "spike" to 3
or 4. Let's look at the day with four overlaps in more detail.

    ruby overlaps -d 2009/06/26 -v

    2009/06/26  4222222
    2       //depot/main/doc/guinotes.txt
    2       //depot/main/doc/apinotes.txt
    2       //depot/main/src/msgs/help.cc
    2       //depot/main/src/net/tcpip.cc
    2       //depot/rel2.0/doc/xmlnotes.txt
    4       //depot/rel2.0/doc/guinotes.txt
    2       //depot/rel2.0/doc/usage.txt

Most of the overlaps were thankfully just release notes. Maybe a release
is coming up soon?

Let's take a look at our src path for the last week to see how many
overlaps are in our source code

    ruby overlaps -v //depot/main/src/...

    2009/07/15  222
    2       //depot/main/src/lib/rlib.cc
    2       //depot/main/src/net/tcpip.cc
    2       //depot/main/src/net/udp.cc
    2009/07/16  2
    2       //depot/main/src/net/tcpip.cc
    2009/07/17  3222222
    2       //depot/main/src/conf/local.cc
    2       //depot/main/src/conf/remote.cc
    2       //depot/main/src/lang/eng.cc
    2       //depot/main/src/lang/frn.cc
    2       //depot/main/src/lang/ger.cc
    2       //depot/main/src/lang/rus.cc
    3       //depot/main/src/net/tcpip.cc
    2       //depot/main/src/msgs/help.cc
    2009/07/18  
    2009/07/19  
    2009/07/20  4222
    2       //depot/main/src/db/tables.cc
    2       //depot/main/src/msgs/usage.cc
    2       //depot/main/src/msgs/help.cc
    4       //depot/main/src/net/tcpip.cc
    2009/07/21  3
    3       //depot/main/src/net/tcpip.cc

tcpip.cc appears to be a popular file. It may be worth looking into why
so many people have been touching it recently.

{{ License | BSD | 2009 | Matt Attaway }}

{{ RecentChanges | //guest/matt\_attaway/scripts/overlaps.rb }}

<Category:Perforce> <Category:Ruby>
# Change User Description Committed
#1 13792 Lester Cheung Archive of wiki.workshop.perforce.com in raw (mediawiki) and markdown formats.