mining version archives for co-changed lines

7
Mining Version Archives for Co-changed Lines Tom Zimmermann • Saarland University, Saarbrücken Sunghun Kim • University of California, Santa Cruz Andreas Zeller • Saarland University, Saarbrücken E. James Whitehead, Jr • University of California, Santa Cruz

Upload: thomas-zimmermann

Post on 15-Jun-2015

715 views

Category:

Technology


1 download

DESCRIPTION

Presented at MSR 2006.

TRANSCRIPT

Page 1: Mining Version Archives for Co-changed Lines

Mining Version Archives for Co-changed Lines

Tom Zimmermann • Saarland University, SaarbrückenSunghun Kim • University of California, Santa CruzAndreas Zeller • Saarland University, Saarbrücken

E. James Whitehead, Jr • University of California, Santa Cruz

Page 2: Mining Version Archives for Co-changed Lines

Annotating Lines

1:2:3:4:5:6:7:8:9:10:11:12:

Tx121:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:

Tx231:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:

Tx421:2:3:4:5:6:7:8:9:10:11:12:13:14:

Tx79

3:4:5:

10:11:12:

7:8:

10:

CHG

CHG

CHG

DEL

ADD

Page 3: Mining Version Archives for Co-changed Lines

Annotating Lines

1:2:3:4:5:6:7:8:9:10:11:12:

Tx121:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:

Tx231:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:

Tx421:2:3:4:5:6:7:8:9:10:11:12:13:14:

Tx79

3:4:5:

10:11:12:

7:8:

10:

CHG

CHG

CHG

DEL

ADD1:2:3:4:5:6:7:8:9:10:11:12:13:14:

1212232323121212; 2312; 2312; 23; 7912121212

Annotation

Page 4: Mining Version Archives for Co-changed Lines

1:2:3:4:

5:6:

-charset "iso-8859-1"-sourcepath [...]-d reference/api-classpath @rt@;../org.apache.ant/lib/ant.jar;../org.eclipse.debug.core/@dot;../org.eclipse.compare/@dot;../org.eclipse.help/@dot;../org.eclipse.help.ui/@dot;../org.eclipse.core.resources/@dot;../org.eclipse.core.runtime/@dot;../org.eclipse.core.filebuffers/@dot;../org.eclipse.core.expressions/@dot;../org.eclipse.swt.win32.win32.x86/@dot;../org.eclipse.ui/@dot;../org.eclipse.jdt.debug/jdi.jar;../org.eclipse.debug.ui/@dot;../org.eclipse.search/@dot;../org.eclipse.jface/@dot;../org.eclipse.jface.text/@dot;../org.eclipse.text/@dot;../org.eclipse.ui.editors/@dot;../org.eclipse.ui.views/@dot;../org.eclipse.ui.workbench/@dot;../org.eclipse.ui.workbench.texteditor/@dot;../org.eclipse.core.variables/@dot;../org.eclipse.ui.ide/@dot;../org.eclipse.jdt.junit/@dot;../org.eclipse.osgi/@dot;../org.eclipse.osgi.services/@dot;../org.eclipse.osgi.util/@dot;../org.eclipse.ui.forms/@dot;../org.eclipse.core.commands/@dot;../org.eclipse.ltk.core.refactoring/@dot;../org.eclipse.ltk.ui.refactoring/@dot;../org.eclipse.core.filesystem/@dot;../org.eclipse.core.jobs/@dot;../org.eclipse.equinox.registry/@dot;../org.eclipse.equinox.common/@dot;../org.eclipse.core.contenttype/@dot;../org.eclipse.equinox.preferences/@dot;../org.eclipse.equinox.supplement/@dot;../org.eclipse.core.runtime.content/@dot;../org.eclipse.core.runtime.jobs/@dot;../org.eclipse.core.runtime.preferences/@dot-breakiterator-use

Frequently Changed Lines

org.eclipse.jdt.doc.isv/jdtOptions.txt

-classpath @rt@;../org.apache.ant/lib/ant.jar;../org.eclipse.debug.core/@dot;../org.eclipse.compare/@dot;../org.eclipse.help/@dot;../org.eclipse.help.ui/@dot;../org.eclipse.core.resources/@dot;../org.eclipse.core.runtime/@dot;../org.eclipse.core.filebuffers/@dot;../org.eclipse.core.expressions/@dot;../org.eclipse.swt.win32.win32.x86/@dot;../org.eclipse.ui/@dot;../org.eclipse.jdt.debug/jdi.jar;../org.eclipse.debug.ui/@dot;../org.eclipse.search/@dot;../org.eclipse.jface/@dot;../org.eclipse.jface.text/@dot;../org.eclipse.text/@dot;../org.eclipse.ui.editors/@dot;../org.eclipse.ui.views/@dot;../org.eclipse.ui.workbench/@dot;../org.eclipse.ui.workbench.texteditor/@dot;../org.eclipse.core.variables/@dot;../org.eclipse.ui.ide/@dot;../org.eclipse.jdt.junit/@dot;../org.eclipse.osgi/@dot;../org.eclipse.osgi.services/@dot;../org.eclipse.osgi.util/@dot;../org.eclipse.ui.forms/@dot;../org.eclipse.core.commands/@dot;../org.eclipse.ltk.core.refactoring/@dot;../org.eclipse.ltk.ui.refactoring/@dot;../org.eclipse.core.filesystem/@dot;../org.eclipse.core.jobs/@dot;../org.eclipse.equinox.registry/@dot;../org.eclipse.equinox.common/@dot;../org.eclipse.core.contenttype/@dot;../org.eclipse.equinox.preferences/@dot;../org.eclipse.equinox.supplement/@dot;../org.eclipse.core.runtime.content/@dot;../org.eclipse.core.runtime.jobs/@dot;../org.eclipse.core.runtime.preferences/@dot

Page 5: Mining Version Archives for Co-changed Lines

1:2:3:4:

5:6:

-charset "iso-8859-1"-sourcepath [...]-d reference/api-classpath @rt@;../org.apache.ant/lib/ant.jar;../org.eclipse.debug.core/@dot;../org.eclipse.compare/@dot;../org.eclipse.help/@dot;../org.eclipse.help.ui/@dot;../org.eclipse.core.resources/@dot;../org.eclipse.core.runtime/@dot;../org.eclipse.core.filebuffers/@dot;../org.eclipse.core.expressions/@dot;../org.eclipse.swt.win32.win32.x86/@dot;../org.eclipse.ui/@dot;../org.eclipse.jdt.debug/jdi.jar;../org.eclipse.debug.ui/@dot;../org.eclipse.search/@dot;../org.eclipse.jface/@dot;../org.eclipse.jface.text/@dot;../org.eclipse.text/@dot;../org.eclipse.ui.editors/@dot;../org.eclipse.ui.views/@dot;../org.eclipse.ui.workbench/@dot;../org.eclipse.ui.workbench.texteditor/@dot;../org.eclipse.core.variables/@dot;../org.eclipse.ui.ide/@dot;../org.eclipse.jdt.junit/@dot;../org.eclipse.osgi/@dot;../org.eclipse.osgi.services/@dot;../org.eclipse.osgi.util/@dot;../org.eclipse.ui.forms/@dot;../org.eclipse.core.commands/@dot;../org.eclipse.ltk.core.refactoring/@dot;../org.eclipse.ltk.ui.refactoring/@dot;../org.eclipse.core.filesystem/@dot;../org.eclipse.core.jobs/@dot;../org.eclipse.equinox.registry/@dot;../org.eclipse.equinox.common/@dot;../org.eclipse.core.contenttype/@dot;../org.eclipse.equinox.preferences/@dot;../org.eclipse.equinox.supplement/@dot;../org.eclipse.core.runtime.content/@dot;../org.eclipse.core.runtime.jobs/@dot;../org.eclipse.core.runtime.preferences/@dot-breakiterator-use

Frequently Changed Lines

org.eclipse.jdt.doc.isv/jdtOptions.txt

-classpath @rt@;../org.apache.ant/lib/ant.jar;../org.eclipse.debug.core/@dot;../org.eclipse.compare/@dot;../org.eclipse.help/@dot;../org.eclipse.help.ui/@dot;../org.eclipse.core.resources/@dot;../org.eclipse.core.runtime/@dot;../org.eclipse.core.filebuffers/@dot;../org.eclipse.core.expressions/@dot;../org.eclipse.swt.win32.win32.x86/@dot;../org.eclipse.ui/@dot;../org.eclipse.jdt.debug/jdi.jar;../org.eclipse.debug.ui/@dot;../org.eclipse.search/@dot;../org.eclipse.jface/@dot;../org.eclipse.jface.text/@dot;../org.eclipse.text/@dot;../org.eclipse.ui.editors/@dot;../org.eclipse.ui.views/@dot;../org.eclipse.ui.workbench/@dot;../org.eclipse.ui.workbench.texteditor/@dot;../org.eclipse.core.variables/@dot;../org.eclipse.ui.ide/@dot;../org.eclipse.jdt.junit/@dot;../org.eclipse.osgi/@dot;../org.eclipse.osgi.services/@dot;../org.eclipse.osgi.util/@dot;../org.eclipse.ui.forms/@dot;../org.eclipse.core.commands/@dot;../org.eclipse.ltk.core.refactoring/@dot;../org.eclipse.ltk.ui.refactoring/@dot;../org.eclipse.core.filesystem/@dot;../org.eclipse.core.jobs/@dot;../org.eclipse.equinox.registry/@dot;../org.eclipse.equinox.common/@dot;../org.eclipse.core.contenttype/@dot;../org.eclipse.equinox.preferences/@dot;../org.eclipse.equinox.supplement/@dot;../org.eclipse.core.runtime.content/@dot;../org.eclipse.core.runtime.jobs/@dot;../org.eclipse.core.runtime.preferences/@dot

CHANGED

28 TIMES

Page 6: Mining Version Archives for Co-changed Lines

Co-change on Lines

25:...static int MINOR_VERSION = 215;...

j2me/Library.java

25:...static int MINOR_VERSION = 215;...

j2se/Library.java

1: version 3.215

version.txt

Page 7: Mining Version Archives for Co-changed Lines

Co-change on Lines

25:...static int MINOR_VERSION = 215;...

j2me/Library.java

25:...static int MINOR_VERSION = 215;...

j2se/Library.java

1: version 3.215

version.txt CHANGED

171 TIMES

TOGETHER