Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
9798d33
Implement network splitting for networks with simplified edges
maxloeffler Jan 21, 2025
0ed437c
Optimize splitting simplified edges for performance
maxloeffler Jan 21, 2025
67a6651
Remove numeric edge attributes from edges when splitting when necessary
maxloeffler Jan 24, 2025
98ef831
Adjust tests to support splitting of simplified edges
maxloeffler Jan 24, 2025
7ec4d83
Add tests for time-based splitting of simplified networks
maxloeffler Jan 27, 2025
637d62a
Change simplification strategy for 'relation' edge attribute to 'concat'
maxloeffler Jan 31, 2025
2c70666
Adjust tests to match new 'relation' attribute simplification strategy
maxloeffler Jan 31, 2025
1cbc6fa
Remove numeric attributes from all splits and keep 'weight' in any case
maxloeffler Feb 9, 2025
41788ff
Adjust tests to remove numeric attrs from all splits but 'weight' never
maxloeffler Feb 9, 2025
b042c0d
Correctly group multi-relational and regular edges before simplification
maxloeffler Feb 9, 2025
36d23d6
Add test for simplification of complex multi-relational networks
maxloeffler Feb 11, 2025
402c256
Deploy custom simplification strategy to replace "concat"
maxloeffler Feb 14, 2025
cf8f2fe
Miscellaneous code consistency fixes
maxloeffler Feb 24, 2025
54af2b1
Keep numeric attributes when possible
maxloeffler Feb 24, 2025
6fae184
Ensure edge attribute values are of list type
maxloeffler Feb 24, 2025
416c817
Adjust tests to work with edge attribute values of list type
maxloeffler Feb 18, 2025
894414a
Improve documentation
maxloeffler Feb 24, 2025
0fe32a2
Remove 'is.list' check for dates retrieved from network edges
maxloeffler Mar 3, 2025
09bd09a
Update 'NEWS.md'
maxloeffler Mar 12, 2025
129e0c5
Merge pull request #278 from maxloeffler/dev
bockthom Mar 20, 2025
5aa4e41
Add basic implementation of stemming
Leo-Send Jan 28, 2025
99f0638
Add methods for commit message functionalities
Leo-Send Mar 4, 2025
25cb48a
add tests for new functionalities
Leo-Send Mar 4, 2025
e469d3a
Add trimming to preprocessing
Leo-Send Mar 4, 2025
fe5495d
Add tests for preprocessing
Leo-Send Mar 4, 2025
cffad2e
Add tests for stemming commit messages
Leo-Send Mar 4, 2025
bb74408
Add test for tokenization
Leo-Send Mar 4, 2025
10b5754
Add tests for lemmatizing commit messages
Leo-Send Mar 4, 2025
2d25d7b
Add tests for keyword search
Leo-Send Mar 4, 2025
228fba6
Add test for commit message token counts
Leo-Send Mar 4, 2025
bd3e2c1
Update required Matrix version
Leo-Send Mar 11, 2025
37c419e
Add additional tests
Leo-Send Mar 11, 2025
7d8fd39
Change method name
Leo-Send Mar 11, 2025
4896eab
Change Matrix version again
Leo-Send Mar 11, 2025
d5fa0d4
Add new functionality to 'README.md'
Leo-Send Mar 11, 2025
84d9a57
Add tests for missing lines
Leo-Send Mar 25, 2025
4ead5b1
Change 'README.md'
Leo-Send Apr 1, 2025
ef689f7
Change loops to apply and do.call
Leo-Send Apr 1, 2025
6e64224
Remove do.call and loops
Leo-Send Apr 7, 2025
8df6b88
Add new functionality to 'showcase.R'
Leo-Send Apr 7, 2025
fe08cf7
Update 'NEWS.md'
Leo-Send Apr 7, 2025
f544394
Add parallelization and if-else constructs
Leo-Send Apr 8, 2025
505b7fc
Incorporate requested changes
Leo-Send Apr 15, 2025
dd9246b
Change preprocessing order
Leo-Send May 14, 2025
1f3772f
Update comments to use " instead of '
Leo-Send May 22, 2025
3dc91b1
Deprecate support for R4.0
Leo-Send May 27, 2025
5aa3ca9
Update NEWS.md
Leo-Send May 27, 2025
e706c7b
Fix spelling errors
Leo-Send Jun 17, 2025
6d4d726
Merge pull request #281 from Leo-Send/commitmessages
hechtlC Jun 17, 2025
06a814c
Refactor structure of arguments to 'merge.network.data'
maxloeffler Apr 7, 2025
4793eab
Introduce 'convert.edge.list.attributes.to.list' function
maxloeffler Apr 7, 2025
8ba907f
Introduce private 'construct.network.data' function
maxloeffler Apr 7, 2025
28d2290
Cache network data instead of networks for performance reasons
maxloeffler Apr 7, 2025
3608214
Adjust internal network creation functions to only return network data
maxloeffler Apr 7, 2025
b30c7f2
Ensure correct naming on 'from' and 'to' attribute of edges
maxloeffler Apr 7, 2025
1fa340d
Simplify attribute conversion using new conversion function
maxloeffler Apr 7, 2025
40cd554
Adjust public network creation functions to work with changed internals
maxloeffler Apr 7, 2025
8fcc744
Complete and reorder the cached network data
maxloeffler Apr 8, 2025
ca348f1
Improve documentation of 'construct.network.data' & 'merge.network.data'
maxloeffler Apr 8, 2025
96ad0ca
Minor repairs
maxloeffler Apr 8, 2025
1d233af
Remove default parameters from 'construct.network.data'
maxloeffler Apr 13, 2025
5dd5fc1
Maintain consistency in the naming of edge attribute related variables
maxloeffler Apr 16, 2025
a9f19f7
Update 'NEWS.md'
maxloeffler Apr 16, 2025
1b156c1
Adjust list of allowed edge attributes
maxloeffler Apr 24, 2025
b8a72ef
Update 'NEWS.md'
maxloeffler Apr 24, 2025
65ead39
Enforce correct directedness when building networks
maxloeffler May 15, 2025
a776caf
Collect logic regarding directedness in 'determine.directedness' method
maxloeffler May 15, 2025
257a1c8
Use correct(ed) directedness in 'get.multi.network'
maxloeffler May 15, 2025
41cff01
Black-box test directedness enforcement
maxloeffler May 18, 2025
9d39c1a
Update 'NEWS.md'
maxloeffler May 22, 2025
12045e5
Update commit hashes in 'NEWS.md' after rebase
maxloeffler Jun 20, 2025
c53389f
Fix coverage report upload
maxloeffler Jun 27, 2025
cf4f78a
Update 'NEWS.md'
maxloeffler Jul 1, 2025
6b9a597
Merge pull request #282 from maxloeffler/dev
bockthom Jul 1, 2025
d694a68
Fix obtaining unique dates in 'construct.edge.list.from.key.value.list'
maxloeffler Apr 24, 2025
105fec1
Only add 'author.name' to edge attributes if it is not already present
maxloeffler Apr 29, 2025
bc2efd6
Add parameter to 'get.networks' to specify which networks to construct
maxloeffler May 15, 2025
7dab04a
Adjust flattening of list attribute values in 'add.vertex.attribute'
maxloeffler Jun 2, 2025
4924ac2
Remove redundant attribute conversions to POSIXct
maxloeffler Jun 2, 2025
aa7e3fa
Cache bipartite relations but remove them from 'get.networks'
maxloeffler Jun 16, 2025
e9a0c16
Add tests for 'network.type' parameter of 'get.networks'
maxloeffler Jul 4, 2025
d5e1e48
Handle empty edges in 'get.commit.network.commit.interactions'
maxloeffler Jul 4, 2025
7928736
Update 'NEWS.md'
maxloeffler Jul 2, 2025
3430c44
Merge pull request #285 from maxloeffler/misc
bockthom Jul 8, 2025
7481099
Ensure that commit ids are unique between proximity and feature
maxloeffler Jun 17, 2025
3e53285
Update codeface data
maxloeffler Jun 17, 2025
50b9b68
Fix restoring date-based order after merging additional data sources
maxloeffler Jul 6, 2025
ae41cbd
Update copyright headers
maxloeffler Jul 29, 2025
61b538b
Sort author data by 'author.name' instead of 'author.id'
maxloeffler Aug 9, 2025
60eb2bd
Test retainment of commit order after adding commit message data
maxloeffler Aug 13, 2025
5d67bb3
Update 'NEWS.md'
maxloeffler Aug 17, 2025
88356e1
Merge pull request #286 from maxloeffler/dev
bockthom Aug 23, 2025
35b34bf
Fix 'get.edgelist.with.timestamps' to work with listed dates
maxloeffler Sep 15, 2025
39bf1dd
Add 'unlist.timestamps.if.possible' parameter to convert dates to vector
maxloeffler Sep 16, 2025
08bcfba
Temporarily fix plot printing by replacing 'ggraph::scale_edge_linetype'
maxloeffler Sep 21, 2025
9ae2a8e
Update 'NEWS.md'
maxloeffler Sep 29, 2025
1c9f7ee
Merge pull request #289 from maxloeffler/dev
bockthom Oct 2, 2025
2ab1212
Version 5.1
bockthom Oct 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@
## with this program; if not, write to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
##
## Copyright 2023-2024 by Maximilian Löffler <s8maloef@stud.uni-saarland.de>
## Copyright 2023-2025 by Maximilian Löffler <s8maloef@stud.uni-saarland.de>
## Copyright 2024 by Thomas Bock <bockthom@cs.uni-saarland.de>
## Copyright 2025 by Leo Sendelbach <s8lesend@stud.uni-saarland.de>
## All Rights Reserved.

name: Build Status
Expand All @@ -37,7 +38,7 @@ jobs:
strategy:
fail-fast: false
matrix:
r-version: ['4.0', '4.1', '4.2', '4.3', '4.4', 'latest']
r-version: ['4.1', '4.2', '4.3', '4.4', '4.5', 'latest']

steps:
- name: Checkout Repo
Expand Down Expand Up @@ -89,17 +90,20 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Checkout Repo
uses: actions/checkout@v4

- name: Load coverage report
uses: actions/download-artifact@v4
with:
name: coverage-report

- name: Upload Report to CodeCov
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: cobertura.xml
files: cobertura.xml
disable_search: true
disable_telem: true
fail_ci_if_error: true
verbose: true

32 changes: 32 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,38 @@

# coronet – Changelog

## 5.1

### Added

- Add the possibility to split networks that contain simplified edges (PR #278, 9798d33512dcdf50d3b88a1223fc4913a2a88eeb, 0ed437c14423c1917f1ba470e7e55db4626d380b, 67a6651b94d50cb7c2ab4a74888b0556d607b102, 98ef83158204be2a67b115cb25df5ba375cccf60, 7ec4d83fdeb308a24a350acd808941807b9511f1, 637d62ab70f098f26f241e588a99cdc49d10f56a, 2c70666f128f96a3a573f29a0cbbef14d803d193, 1cbc6fa36859d6db3a7ff4493ef19763e87d2de3, 41788ff029d038969bfc6b5773e919201c5ac595, b042c0dd08e2229514ccd25dee7a119f25b1ab45, 36d23d657f412aa1953c4773076e593273f19d8e, 402c256d9a05e4ffb297d4ea1fc25d0230787bc0, 54af2b19a112070f10d191b98b055482748426a7, 894414a4a970822b9ecd59c0b6c480860707f636, 0fe32a259ef703c2de79135bfa6932a595fdc1c5)
- Add functionality for commit-message content analysis, such as NLP tools including stemming, tokenization, and lemmatization, as well as a function to search for keywords in commit messages and a function to measure the length of the messages (PR #281, 5aa4e4193f0c00095fedf961c6060a5c035ef9c6, 99f0638566c0062b987617bc3fe3ace1db7729ee, e469d3a0cf2881c378469b6ccfea9c204d13f19b, 7d8fd39f164c776921e3fb36daf79256e7be7426, ef689f71f248059cc69be4792ca14ce3b95dcac8, 6e642242a3063663bcc3c7f5cca0650dfebb6bb4, f54439486115cada08dac23864b2f7605edca9ea, dd9246b2f4506d3d58f1c1f37fc198aaaafebb0d)
- Add `unlist.timestamps.if.possible` parameter to `get.edgelist.with.timestamps` which allows callers to request a conversion of the timestamps from list to vector if possible, i.e., when there are no simplified edges in the network (PR #289, 39bf1ddc570057fcae093252d7631e13bc0b5a55)

### Changed/Improved

- For consistency reasons: Ensure that the values of edge attributes are always lists even when they represent singular values (PR #278, 6fae1843740ed8e48c89c2ee4e61f995b5d0b8f5, 416c817998540fc0b82d9959574838b571b4d6fb)
- Reduce the amount of redundantly built networks by caching network data internally. This should improve the performance of building multi-networks, especially, when parts of the multi-networks have been built before (#119, PR #282, 06a814c945f0b20af842d20247126083523cde55, 4793eab02e8792b0640fad88a90018292b1b2ab9, 8ba907fff0534c6fef39bd289ab163c90b053530, 28d22902e32e93c0d4990576da2ef3de88fdffbd, 3608214b9bcf1ac5edc0c47182993c4fcc95d8b0, b30c7f2b5b0a6d12e8024fafada5490170530ebe, 1fa340d6347090a327b4c32ece705c1f700234e5, 40cd55423be7b6521e2fc35f5aa200ff0594e77c, 8fcc74439c28b1592e964dd753bfc1cd57c062be, ca348f1de8e3b4e5786a6d2726ca14e530446896, 1d233af734f79e677d3388f7c3589ce186cc3a8d, 5dd5fc18940ce9ac9598902f175193167b471966)
- Internally cache commit-network data and bipartite-network data similarly to how we cache network data for author-, and artifact-networks (PR #282, PR #285, 3608214b9bcf1ac5edc0c47182993c4fcc95d8b0, aa7e3fae9f45df73054f7d9c6a96177575106c7d)
- Ensure that configured or implicitly-enforced undirectedness in partial networks is always dominant over configured or implicitly-enforced directedness. Furthermore, ensure consistency in the directedness used for edge generation and as a network attribute, especially in networks that consist of multiple partial networks such as multi-networks (PR #282, 65ead39b7b971e5a0acbaee4e787efcf194aafc4, a776caf72256200e1bfa5578106a9b53547b00e7, 257a1c8a6a9b1c3e2a72960cc4051a87950753ee, 41cff01cf141a377c96048f0645e05fb200138e9)
- Remove redundant entries from the list of allowed edge attributes and instead add `event.info.1` and `event.info.2` (PR #282, 1b156c17f261d8b70d8d48c6cb94d3ee591559f3)
- Allow the issue data attributes `event.info.1` and `event.info.2` on network edges (PR #282, 1b156c17f261d8b70d8d48c6cb94d3ee591559f3)
- Add a `network.type` parameter to `get.networks` in which the caller can specify the types of networks to be constructed. This improves performance in cases where not all network types are needed, such as when building multi-networks (PR #285, bc2efd643d92da547d4677f9026540c25e730a03, e9a0c1681a0b63bd831fe7657ce25a9d50dc6e83)
- Rename the `list.attributes` parameter in `add.vertex.attribute` and `split.and.add.vertex.attribute` to `flatten.values` with inverted semantics and introduce documentation for it to improve comprehensibility (PR #285, 7dab04a5251d89c9cb286452528ef8b6775a7347)
- Sort author data by `author.name` instead of `author.id` when reading it from a file (PR #286, 61b538b7cf81c4b6638951bfaf051e376d0986b3)
- Enhance codeface testing data by ensuring that commit ids are unique between proximity and feature data and by adding commit data that includes (1) different commits that touch the same file / function, (2) commits that are authored at the same time by different authors (PR #286, 7481099af109e1897b9e5754beb1c7da9f39ffb9, 3e53285426010cf7bf48fa23daa484f29f80ac78)
- Deprecate support for R version 4.0 because of breaking dependencies (PR #281, 3dc91b155b3e0e2a55378592db448606381f902e)

### Fixed

- Fix a bug in `construct.edge.list.from.key.value.list` that could cause a crash when constructing a network where different vertices have identical associated timestamps (PR #285, d694a6847c36d32dfee60f7d5b082e1d3ba57e01)
- Fix a bug in network construction that could lead to edges having an unwanted `author.name.1` attribute (PR #285, 105fec1acc436378a9282c40fcae0eb0257f00be)
- Ensure that POSIXct values are correctly handled in `add.vertex.attribute`, i.e., that they are not converted to numeric values (PR #285, 7dab04a5251d89c9cb286452528ef8b6775a7347, 4924ac23737dec6f915edaeb350a5cbaebbeec79)
- Handle empty edges when constructing commit networks using commit-interaction data (PR #285, d5e1e4801230224e6272cd66873bd43bb7f04a00)
- Correctly retain order of commit and mail data when merging it with PAStA, synchronicity, and commit message data (PR #286, 50b9b68effd49f853b8bcb335676357a854d1f97)
- Fix `get.edgelist.with.timestamps` to work correctly on networks with dates in default (list) format (PR #289, 35b34bf1d5049904d75122ace847debe0d1595f7)


## 5.0

### Announcement
Expand Down
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ If you wonder: The name `coronet` derives as an acronym from the words "configur
- [Core/Peripheral classification](#coreperipheral-classification)
- [Count-based metrics](#count-based-metrics)
- [Network-based metrics](#network-based-metrics)
- [Commit-message content analysis](#commit-message-content-analysis)
- [How-to](#how-to)
- [File/Module overview](#filemodule-overview)
- [Configuration classes](#configuration-classes)
Expand All @@ -62,9 +63,9 @@ While using the package, we require the following infrastructure.

#### [`R`](https://www.r-project.org/)

Minimum requirement is `R` version `4.0.5`. Hence, later `R` versions also work. (Earlier `R` versions beginning from version `3.3.1` on should also work, but some packages are not available any more for these versions, so we do not test them any more in our CI pipeline.)
Minimum requirement is `R` version `4.1.1`. Hence, later `R` versions also work. (Earlier `R` versions beginning from version `3.3.1` on should also work, but some packages are not available any more for these versions, so we do not test them any more in our CI pipeline.)

We currently *recommend* `R` version `4.1.1` or `4.3.0` for reliability reasons and `packrat` compatibility, but also later `R` versions should work (and are tested using our CI script).
We currently *recommend* `R` version `4.3.0` or `4.5.1` for reliability reasons and `packrat` compatibility, but also later `R` versions should work (and are tested using our CI script).

#### [`packrat`](http://rstudio.github.io/packrat/) (recommended)

Expand Down Expand Up @@ -147,6 +148,9 @@ Alternatively, you can run `Rscript install.R` to install the packages.
- `Matrix`: For sparse matrix representation of large adjacency matrices (package version `1.3.0` or higher is required)
- `fastmap`: For fast implementation of a map
- `purrr`: For fast implementation of a mapping function
- `tm`: For NLP tasks used on commit messages
- `textstem`: For lemmatization of commit messages
- `SnowballC`: For text stemming, used by NLP package `tm`

### Submodule

Expand Down Expand Up @@ -429,6 +433,10 @@ In this section, we provide descriptions of the different algorithms we provide
* calculates scores based on the eccentricity of vertices in a network
* eccentricity measures the length of the shortest path to each vertex's furthest reachable vertex

#### Commit-message content analysis

In this section, we give an overview of the functionalities we offer regarding the textual analysis of commit messages. These consist of basic NLP tasks, such as stemming (`get.stemmed.commit.messages`), tokenization (`get.tokenized.commit.messages`), and lemmatization (`get.lemmatized.commit.messages`), as well as preprocessing steps (`get.preprocessed.commit.messages`) such as lowercase transformation and removal of punctuation, stopwords, and extra whitespaces. Apart from these, there is the option of searching for a set of strings in commit messages for matching commits (`get.commit.messages.by.strings`) as well as getting token counts for commit messages (`get.commit.message.counts`).

### How-to

In this section, we give a short example on how to initialize all needed objects and build a bipartite network.
Expand Down
16 changes: 11 additions & 5 deletions install.R
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
## Copyright 2020-2024 by Thomas Bock <bockthom@cs.uni-saarland.de>
## Copyright 2019 by Anselm Fehnker <fehnker@fim.uni-passau.de>
## Copyright 2021 by Christian Hechtl <hechtl@cs.uni-saarland.de>
## Copyright 2024 by Leo Sendelbach <s8lesend@stud.uni-saarland.de>
## Copyright 2024-2025 by Leo Sendelbach <s8lesend@stud.uni-saarland.de>
## Copyright 2024 by Maximilian Löffler <s8@maloef@stud.uni-saarland.de>
## All Rights Reserved.
##
Expand Down Expand Up @@ -48,6 +48,9 @@ packages = c(
"Matrix",
"fastmap",
"purrr",
"tm",
"textstem",
"SnowballC",
"testthat",
"patrick",
"covr"
Expand Down Expand Up @@ -76,11 +79,14 @@ if (length(p) > 0) {
}

Matrix.version = installed.packages()[rownames(installed.packages()) == "Matrix", "Version"]
if (compareVersion(Matrix.version, "1.3.0") == -1) {
print("WARNING: Matrix version 1.3.0 or higher is necessary for using coronet. Re-install package Matrix...")
install.packages("Matrix", dependencies = NA, verbose = TRUE, quiet = TRUE)
if (compareVersion(Matrix.version, "1.5.0") == -1) {
print("WARNING: Matrix version 1.5.0 or higher is necessary for using coronet. Re-install package Matrix...")
matrix.1.5.0.url = "https://cran.r-project.org/src/contrib/Archive/Matrix/Matrix_1.5-0.tar.gz"
install.packages(matrix.1.5.0.url, repos = NULL, dependencies = NA, verbose = TRUE, quiet = TRUE)
## redo installation of textstem, which fails if matrix is outdated or not present
install.packages("textstem", dependencies = NA, verbose = TRUE, quiet = TRUE)
Matrix.version = installed.packages()[rownames(installed.packages()) == "Matrix", "Version"]
if (compareVersion(Matrix.version, "1.3.0") == -1) {
if (compareVersion(Matrix.version, "1.5.0") == -1) {
print("WARNING: Re-installation of package Matrix did not end up in the necessary package version.")
}
}
Expand Down
18 changes: 17 additions & 1 deletion showcase.R
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
## Copyright 2021 by Niklas Schneider <s8nlschn@stud.uni-saarland.de>
## Copyright 2022 by Jonathan Baumann <joba00002@stud.uni-saarland.de>
## Copyright 2024 by Maximilian Löffler <s8maloef@stud.uni-saarland.de>
## Copyright 2024 by Leo Sendelbach <s8lesend@stud.uni-saarland.de>
## Copyright 2024-2025 by Leo Sendelbach <s8lesend@stud.uni-saarland.de>
## All Rights Reserved.


Expand Down Expand Up @@ -501,3 +501,19 @@ calculate.cohens.kappa(author.classification.list = author.class.overview,
get.class.turnover.overview(author.class.overview = author.class.overview)
get.unstable.authors.overview(author.class.overview = author.class.overview, saturation = 2)

## / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
## Commit-message content analysis -----------------------------------------

## analyze all commit messages using tokenization, which does not employ any preprocessing steps
get.tokenized.commit.messages(y.data)

## analyze the commit message of a specific commit with only one preprocessing step
get.lemmatized.commit.messages(y.data,
commit.hashes = c("3a0ed78458b3976243db6829f63eba3eead26774"),
preprocessing = "stopwords")

## analyze all commits using default preprocessing
get.preprocessed.commit.messages(y.data)

## analyze all commit messages with two preprocessing steps
get.stemmed.commit.messages(y.data, preprocessing = c("whitespaces", "lowercase"))
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
32710;"2016-07-12 16:05:41";"Olaf";"olaf@example.org";"2016-07-12 17:05:55";"Thomas";"thomas@example.org";"3a0ed78458b3976243db6829f63eba3eead26774";1;1;0;1;"test2.c";"Base_Feature";"Feature";1
32710;"2016-07-12 16:05:41";"Olaf";"olaf@example.org";"2016-07-12 17:05:55";"Thomas";"thomas@example.org";"3a0ed78458b3976243db6829f63eba3eead26774";1;1;0;1;"test2.c";"Base_Feature";"FeatureExpression";1
32714;"2016-07-12 16:06:10";"Karl";"karl@example.org";"2016-07-12 16:06:10";"Karl";"karl@example.org";"1143db502761379c2bfcecc2007fc34282e7ee61";1;1;0;1;"test3.c";"Base_Feature";"Feature";1
32715;"2016-07-12 16:06:20";"Karl";"karl@example.org";"2016-07-12 16:06:20";"Karl";"karl@example.org";"418d1dc4929ad1df251d2aeb833dd45757b04a6f";1;1;0;1;"";"";"";0
32716;"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"d01921773fae4bed8186b0aa411d6a2f7a6626e6";1;1;0;1;"";"";"";0
32707;"2016-07-12 16:06:20";"Karl";"karl@example.org";"2016-07-12 16:06:20";"Karl";"karl@example.org";"418d1dc4929ad1df251d2aeb833dd45757b04a6f";1;1;0;1;"";"";"";0
32708;"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"7d5219c4ba15b8962203f0ae37f9854167914915";2;3;1;2;"test2.c";"foo";"Feature";1
32708;"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"7d5219c4ba15b8962203f0ae37f9854167914915";2;3;1;2;"test3.c";"foo";"Feature";2
32709;"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"d01921773fae4bed8186b0aa411d6a2f7a6626e6";1;1;0;1;"";"";"";0
32711;"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"0a1a5c523d835459c42f33e863623138555e2526";1;1;0;1;"test2.c";"Base_Feature";"Feature";1
32711;"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"0a1a5c523d835459c42f33e863623138555e2526";1;1;0;1;"test2.c";"foo";"Feature";1
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
32710;"2016-07-12 16:05:41";"Olaf";"olaf@example.org";"2016-07-12 17:05:55";"Thomas";"thomas@example.org";"3a0ed78458b3976243db6829f63eba3eead26774";1;1;0;1;"test2.c";"Base_Feature";"Feature";1
32710;"2016-07-12 16:05:41";"Olaf";"olaf@example.org";"2016-07-12 17:05:55";"Thomas";"thomas@example.org";"3a0ed78458b3976243db6829f63eba3eead26774";1;1;0;1;"test2.c";"Base_Feature";"FeatureExpression";1
32714;"2016-07-12 16:06:10";"Karl";"karl@example.org";"2016-07-12 16:06:10";"Karl";"karl@example.org";"1143db502761379c2bfcecc2007fc34282e7ee61";1;1;0;1;"test3.c";"Base_Feature";"Feature";1
32715;"2016-07-12 16:06:20";"Karl";"karl@example.org";"2016-07-12 16:06:20";"Karl";"karl@example.org";"418d1dc4929ad1df251d2aeb833dd45757b04a6f";1;1;0;1;"";"";"";0
32716;"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"d01921773fae4bed8186b0aa411d6a2f7a6626e6";1;1;0;1;"";"";"";0
32707;"2016-07-12 16:06:20";"Karl";"karl@example.org";"2016-07-12 16:06:20";"Karl";"karl@example.org";"418d1dc4929ad1df251d2aeb833dd45757b04a6f";1;1;0;1;"";"";"";0
32708;"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"7d5219c4ba15b8962203f0ae37f9854167914915";2;3;1;2;"test2.c";"foo";"Feature";1
32708;"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"7d5219c4ba15b8962203f0ae37f9854167914915";2;3;1;2;"test3.c";"foo";"Feature";2
32709;"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"d01921773fae4bed8186b0aa411d6a2f7a6626e6";1;1;0;1;"";"";"";0
32711;"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"0a1a5c523d835459c42f33e863623138555e2526";1;1;0;1;"test2.c";"Base_Feature";"Feature";1
32711;"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"0a1a5c523d835459c42f33e863623138555e2526";1;1;0;1;"test2.c";"foo";"Feature";1
31711;"2016-07-12 16:06:33";"Thomas";"thomas@example.org";"2016-07-12 16:06:33";"";"thomas@example.org";"2ef7bde608ce5404e97d5f042f95f89f1c232871";1;1;0;1;"test2.c";"foo";"Feature";1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@
32719;"2016-07-12 16:06:10";"Karl";"karl@example.org";"2016-07-12 16:06:10";"Karl";"karl@example.org";"1143db502761379c2bfcecc2007fc34282e7ee61";1;1;0;1;"test3.c";"test_function";"Function";1
32715;"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"2016-07-12 16:06:32";"Thomas";"thomas@example.org";"0a1a5c523d835459c42f33e863623138555e2526";1;1;0;1;"test2.c";"File_Level";"Function";1
32720;"2016-07-12 16:06:20";"Karl";"karl@example.org";"2016-07-12 16:06:20";"Karl";"karl@example.org";"418d1dc4929ad1df251d2aeb833dd45757b04a6f";1;1;0;1;"";"";"";0
32722;"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"7d5219c4ba15b8962203f0ae37f9854167914915";2;3;1;2;"test2.c";"test_function";"Function";1
32722;"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"2016-07-12 16:06:20";"Thomas";"thomas@example.org";"7d5219c4ba15b8962203f0ae37f9854167914915";2;3;1;2;"test3.c";"test_function";"Function";2
32721;"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"2016-07-12 16:06:30";"Thomas";"thomas@example.org";"d01921773fae4bed8186b0aa411d6a2f7a6626e6";1;1;0;1;"";"";"";0
Loading
Loading